Browse Source

Trim author/committer name and email in commit header

C Git trims name and email before inserting them into the commit header
so that " A U Thor  " and "  author@example.com " becomes 
"A U Thor <author@example.com>" with a single separating space.

This changes PersonIdent#toExternalString() to trim name and email
before concatenating them.

Change-Id: Idd77b659d0db957626824f6632e2da38d7731625
Signed-off-by: Rüdiger Herrmann <ruediger.herrmann@gmx.de>
stable-3.6
Rüdiger Herrmann 10 years ago committed by Matthias Sohn
parent
commit
a4c2c8a3ee
  1. 12
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java
  2. 4
      org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java

12
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java

@ -44,6 +44,7 @@
package org.eclipse.jgit.lib;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.Date;
import java.util.TimeZone;
@ -83,4 +84,15 @@ public class T0001_PersonIdentTest {
public void nullForEmailShouldThrowIllegalArgumentException() {
new PersonIdent("A U Thor", null);
}
@Test
public void testToExternalStringTrimsNameAndEmail() throws Exception {
PersonIdent personIdent = new PersonIdent(" A U Thor ",
" author@example.com ");
String externalString = personIdent.toExternalString();
assertTrue(externalString.startsWith("A U Thor <author@example.com>"));
}
}

4
org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java

@ -254,9 +254,9 @@ public class PersonIdent implements Serializable {
*/
public String toExternalString() {
final StringBuilder r = new StringBuilder();
r.append(getName());
r.append(getName().trim());
r.append(" <"); //$NON-NLS-1$
r.append(getEmailAddress());
r.append(getEmailAddress().trim());
r.append("> "); //$NON-NLS-1$
r.append(when / 1000);
r.append(' ');

Loading…
Cancel
Save