Browse Source

Merge "Allow JGit to read C Git rebase state"

stable-2.1
Christian Halstrick 12 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
02113f7411
  1. 4
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
  2. 9
      org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java

4
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java

@ -975,7 +975,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
String[] lines = convertedAuthor.split("\n"); String[] lines = convertedAuthor.split("\n");
assertEquals("GIT_AUTHOR_NAME='Author name'", lines[0]); assertEquals("GIT_AUTHOR_NAME='Author name'", lines[0]);
assertEquals("GIT_AUTHOR_EMAIL='a.mail@some.com'", lines[1]); assertEquals("GIT_AUTHOR_EMAIL='a.mail@some.com'", lines[1]);
assertEquals("GIT_AUTHOR_DATE='123456789 -0100'", lines[2]); assertEquals("GIT_AUTHOR_DATE='@123456789 -0100'", lines[2]);
PersonIdent parsedIdent = git.rebase().parseAuthor( PersonIdent parsedIdent = git.rebase().parseAuthor(
convertedAuthor.getBytes("UTF-8")); convertedAuthor.getBytes("UTF-8"));
@ -992,7 +992,7 @@ public class RebaseCommandTest extends RepositoryTestCase {
lines = convertedAuthor.split("\n"); lines = convertedAuthor.split("\n");
assertEquals("GIT_AUTHOR_NAME='Author name'", lines[0]); assertEquals("GIT_AUTHOR_NAME='Author name'", lines[0]);
assertEquals("GIT_AUTHOR_EMAIL='a.mail@some.com'", lines[1]); assertEquals("GIT_AUTHOR_EMAIL='a.mail@some.com'", lines[1]);
assertEquals("GIT_AUTHOR_DATE='123456789 +0930'", lines[2]); assertEquals("GIT_AUTHOR_DATE='@123456789 +0930'", lines[2]);
parsedIdent = git.rebase().parseAuthor( parsedIdent = git.rebase().parseAuthor(
convertedAuthor.getBytes("UTF-8")); convertedAuthor.getBytes("UTF-8"));

9
org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java

@ -439,6 +439,7 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
// representation for date and timezone // representation for date and timezone
sb.append(GIT_AUTHOR_DATE); sb.append(GIT_AUTHOR_DATE);
sb.append("='"); sb.append("='");
sb.append("@"); // @ for time in seconds since 1970
String externalString = author.toExternalString(); String externalString = author.toExternalString();
sb sb
.append(externalString.substring(externalString .append(externalString.substring(externalString
@ -1013,7 +1014,13 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
String time = keyValueMap.get(GIT_AUTHOR_DATE); String time = keyValueMap.get(GIT_AUTHOR_DATE);
// the time is saved as <seconds since 1970> <timezone offset> // the time is saved as <seconds since 1970> <timezone offset>
long when = Long.parseLong(time.substring(0, time.indexOf(' '))) * 1000; int timeStart = 0;
if (time.startsWith("@"))
timeStart = 1;
else
timeStart = 0;
long when = Long
.parseLong(time.substring(timeStart, time.indexOf(' '))) * 1000;
String tzOffsetString = time.substring(time.indexOf(' ') + 1); String tzOffsetString = time.substring(time.indexOf(' ') + 1);
int multiplier = -1; int multiplier = -1;
if (tzOffsetString.charAt(0) == '+') if (tzOffsetString.charAt(0) == '+')

Loading…
Cancel
Save