PersonIdent: Document that name and email aren't trimmed

This might be somewhat surprising behavior to users who might
naturally assume the following invariant:
  ident.equals(parseIdent(ident.toExternalString()))

This invariant does not hold since whitespace is only trimmed during
serialization. We don't want to mess with the strings during
initialization, as this is called during the highly-optimized commit
parsing codepath.

Change-Id: I081a603f0ac0e33167462244779b0ff3ad51e80c
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java
index 1515a07..48d2c48 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0001_PersonIdentTest.java
@@ -92,8 +92,10 @@
 		PersonIdent personIdent = new PersonIdent("  A U Thor  ",
 				"  author@example.com  ");
 
-		String externalString = personIdent.toExternalString();
+		assertEquals("  A U Thor  ", personIdent.getName());
+		assertEquals("  author@example.com  ", personIdent.getEmailAddress());
 
+		String externalString = personIdent.toExternalString();
 		assertTrue(externalString.startsWith("A U Thor <author@example.com>"));
 	}
 
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java
index 2ecc60c..aa30463 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/PersonIdent.java
@@ -217,7 +217,12 @@
 	}
 
 	/**
-	 * Construct a {@link PersonIdent}
+	 * Construct a {@link PersonIdent}.
+	 * <p>
+	 * Whitespace in the name and email is preserved for the lifetime of this
+	 * object, but are trimmed by {@link #toExternalString()}. This means that
+	 * parsing the result of {@link #toExternalString()} may not return an
+	 * equivalent instance.
 	 *
 	 * @param aName
 	 * @param aEmailAddress