diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java index 2823b34b1..68c5a3a43 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java @@ -162,7 +162,7 @@ public void testPush_UnpackError_TruncatedPack() throws Exception { try { PacketLineIn pckin = new PacketLineIn(rawin); assertEquals("unpack error " - + JGitText.get().packfileIsTruncated, + + JGitText.get().packfileIsTruncatedNoParam, pckin.readString()); assertEquals("ng refs/objects/A n/a (unpacker error)", pckin.readString()); diff --git a/org.eclipse.jgit.java7/META-INF/MANIFEST.MF b/org.eclipse.jgit.java7/META-INF/MANIFEST.MF index c37318123..92da30d5f 100644 --- a/org.eclipse.jgit.java7/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.java7/META-INF/MANIFEST.MF @@ -1,6 +1,6 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 -Fragment-Host: org.eclipse.jgit;bundle-version="3.1.1" +Fragment-Host: org.eclipse.jgit;bundle-version="4.0.0" Bundle-Name: %plugin_name Bundle-SymbolicName: org.eclipse.jgit.java7 Bundle-Version: 4.0.0.qualifier diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java index 69926f915..db31fd34c 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java @@ -186,6 +186,9 @@ public void test007_readUserConfig() { assertFalse(localConfig.get(UserConfig.KEY).isAuthorEmailImplicit()); // the values are defined in the global configuration + // first clear environment variables since they would override + // configuration files + mockSystemReader.clearProperties(); userGitConfig.setString("user", null, "name", "global username"); userGitConfig.setString("user", null, "email", "author@globalemail"); authorName = localConfig.get(UserConfig.KEY).getAuthorName(); @@ -211,6 +214,20 @@ public void test007_readUserConfig() { assertEquals("author@localemail", authorEmail); assertFalse(localConfig.get(UserConfig.KEY).isCommitterNameImplicit()); assertFalse(localConfig.get(UserConfig.KEY).isCommitterEmailImplicit()); + + // also git environment variables are defined + mockSystemReader.setProperty(Constants.GIT_AUTHOR_NAME_KEY, + "git author name"); + mockSystemReader.setProperty(Constants.GIT_AUTHOR_EMAIL_KEY, + "author@email"); + localConfig.setString("user", null, "name", "local username"); + localConfig.setString("user", null, "email", "author@localemail"); + authorName = localConfig.get(UserConfig.KEY).getAuthorName(); + authorEmail = localConfig.get(UserConfig.KEY).getAuthorEmail(); + assertEquals("git author name", authorName); + assertEquals("author@email", authorEmail); + assertFalse(localConfig.get(UserConfig.KEY).isAuthorNameImplicit()); + assertFalse(localConfig.get(UserConfig.KEY).isAuthorEmailImplicit()); } @Test diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties index 50aae7390..17ac8102d 100644 --- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties +++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties @@ -146,7 +146,7 @@ couldNotRenameTemporaryIndexFileToIndex=Could not rename temporary index file to couldNotURLEncodeToUTF8=Could not URL encode to UTF-8 couldNotWriteFile=Could not write file {0} countingObjects=Counting objects -corruptPack=Pack file {0} is corrupt +corruptPack=Pack file {0} is corrupt, removing it from pack list createBranchFailedUnknownReason=Create branch failed for unknown reason createBranchUnexpectedResult=Create branch returned unexpected result {0} createNewFileFailed=Could not create new file {0} @@ -382,14 +382,15 @@ openFilesMustBeAtLeast1=Open files must be >= 1 openingConnection=Opening connection operationCanceled=Operation {0} was canceled outputHasAlreadyBeenStarted=Output has already been started. -packChecksumMismatch=Pack checksum mismatch +packChecksumMismatch=Pack checksum mismatch detected for pack file {0} packCorruptedWhileWritingToFilesystem=Pack corrupted while writing to filesystem packDoesNotMatchIndex=Pack {0} does not match index packetSizeMustBeAtLeast=packet size {0} must be >= {1} packetSizeMustBeAtMost=packet size {0} must be <= {1} packfileCorruptionDetected=Packfile corruption detected: {0} packFileInvalid=Pack file invalid: {0} -packfileIsTruncated=Packfile is truncated. +packfileIsTruncated=Packfile {0} is truncated. +packfileIsTruncatedNoParam=Packfile is truncated. packHasUnresolvedDeltas=pack has unresolved deltas packingCancelledDuringObjectsWriting=Packing cancelled during objects writing packObjectCountMismatch=Pack object count mismatch: pack {0} index {1}: {2} diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java index 12893d6ff..bbcb69899 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java @@ -449,6 +449,7 @@ public static JGitText get() { /***/ public String packfileCorruptionDetected; /***/ public String packFileInvalid; /***/ public String packfileIsTruncated; + /***/ public String packfileIsTruncatedNoParam; /***/ public String packHasUnresolvedDeltas; /***/ public String packingCancelledDuringObjectsWriting; /***/ public String packObjectCountMismatch; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java index 50064d52a..5d130b6d6 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsPackFile.java @@ -199,7 +199,7 @@ public long getCachedSize() { return key.cachedSize.get(); } - private String getPackName() { + String getPackName() { return packDesc.getFileName(PACK); } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java index 37dbc7ea7..4cf7cbefc 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReader.java @@ -556,7 +556,8 @@ void copyPackAsIs(DfsPackFile pack, long length, boolean validate, pin(pack, 0); if (block.copy(0, buf, 0, 12) != 12) { pack.setInvalid(); - throw new IOException(JGitText.get().packfileIsTruncated); + throw new IOException(MessageFormat.format( + JGitText.get().packfileIsTruncated, pack.getPackName())); } md.update(buf, 0, 12); } @@ -580,7 +581,8 @@ void copyPackAsIs(DfsPackFile pack, long length, boolean validate, pin(pack, position); if (block.copy(position, buf, 0, 20) != 20) { pack.setInvalid(); - throw new IOException(JGitText.get().packfileIsTruncated); + throw new IOException(MessageFormat.format( + JGitText.get().packfileIsTruncated, pack.getPackName())); } if (!Arrays.equals(actHash, buf)) { pack.setInvalid(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java index ffe6e810b..223689b0f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java @@ -170,11 +170,13 @@ private synchronized PackIndex idx() throws IOException { try { final PackIndex idx = PackIndex.open(extFile(INDEX)); - if (packChecksum == null) + if (packChecksum == null) { packChecksum = idx.packChecksum; - else if (!Arrays.equals(packChecksum, idx.packChecksum)) - throw new PackMismatchException(JGitText.get().packChecksumMismatch); - + } else if (!Arrays.equals(packChecksum, idx.packChecksum)) { + throw new PackMismatchException(MessageFormat.format( + JGitText.get().packChecksumMismatch, + packFile.getPath())); + } loadedIdx = idx; } catch (IOException e) { invalid = true; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java index a0a4c952f..85c3c7425 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/WindowCursor.java @@ -246,7 +246,9 @@ void copyPackAsIs(final PackFile pack, final long length, boolean validate, pin(pack, 0); if (window.copy(0, buf, 0, 12) != 12) { pack.setInvalid(); - throw new IOException(JGitText.get().packfileIsTruncated); + throw new IOException(MessageFormat.format( + JGitText.get().packfileIsTruncated, pack.getPackFile() + .getPath())); } md.update(buf, 0, 12); } @@ -270,7 +272,9 @@ void copyPackAsIs(final PackFile pack, final long length, boolean validate, pin(pack, position); if (window.copy(position, buf, 0, 20) != 20) { pack.setInvalid(); - throw new IOException(JGitText.get().packfileIsTruncated); + throw new IOException(MessageFormat.format( + JGitText.get().packfileIsTruncated, pack.getPackFile() + .getPath())); } if (!Arrays.equals(actHash, buf)) { pack.setInvalid(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/UserConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/UserConfig.java index 60ac6f176..b8d236c1d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/UserConfig.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/UserConfig.java @@ -172,12 +172,13 @@ public boolean isCommitterEmailImplicit() { } private static String getNameInternal(Config rc, String envKey) { - // try to get the user name from the local and global configurations. - String username = rc.getString("user", null, "name"); //$NON-NLS-1$ //$NON-NLS-2$ + // try to get the user name for the system property GIT_XXX_NAME + String username = system().getenv(envKey); if (username == null) { - // try to get the user name for the system property GIT_XXX_NAME - username = system().getenv(envKey); + // try to get the user name from the local and global + // configurations. + username = rc.getString("user", null, "name"); //$NON-NLS-1$ //$NON-NLS-2$ } return stripInvalidCharacters(username); @@ -196,12 +197,12 @@ private static String getDefaultUserName() { } private static String getEmailInternal(Config rc, String envKey) { - // try to get the email from the local and global configurations. - String email = rc.getString("user", null, "email"); //$NON-NLS-1$ //$NON-NLS-2$ + // try to get the email for the system property GIT_XXX_EMAIL + String email = system().getenv(envKey); if (email == null) { - // try to get the email for the system property GIT_XXX_EMAIL - email = system().getenv(envKey); + // try to get the email from the local and global configurations. + email = rc.getString("user", null, "email"); //$NON-NLS-1$ //$NON-NLS-2$ } return stripInvalidCharacters(email); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java index 633554a96..5b54891cd 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java @@ -1135,7 +1135,8 @@ private int fill(final Source src, final int need) throws IOException { break; } if (next <= 0) - throw new EOFException(JGitText.get().packfileIsTruncated); + throw new EOFException( + JGitText.get().packfileIsTruncatedNoParam); bAvail += next; } return bOffset;