store mercurial specific revisions as changeset properties

This commit is contained in:
Sebastian Sdorra
2012-12-04 21:16:00 +01:00
parent 0b9d4908f4
commit 49a10aa875

View File

@@ -88,6 +88,15 @@ public class HgLogChangesetCommand extends AbstractCommand
private static final String NULL_ID =
"0000000000000000000000000000000000000000";
/** changeset property for parent1 revision */
private static final String PROPERTY_PARENT1_REVISION = "hg.parent1.revision";
/** changeset property for parent2 revision */
private static final String PROPERTY_PARENT2_REVISION = "hg.parent2.revision";
/** changeset property for node revision */
private static final String PROPERTY_REVISION = "hg.revision";
//~--- constructors ---------------------------------------------------------
/**
@@ -262,7 +271,7 @@ public class HgLogChangesetCommand extends AbstractCommand
{
Changeset changeset = new Changeset();
changeset.setId(readId(in));
changeset.setId(readId(in, changeset, PROPERTY_REVISION));
String user = in.textUpTo('\n');
@@ -279,14 +288,14 @@ public class HgLogChangesetCommand extends AbstractCommand
changeset.getBranches().add(branch);
}
String p1 = readId(in);
String p1 = readId(in, changeset, PROPERTY_PARENT1_REVISION);
if (!isNullId(p1))
{
changeset.getParents().add(p1);
}
String p2 = readId(in);
String p2 = readId(in, changeset, PROPERTY_PARENT2_REVISION);
if (!isNullId(p2))
{
@@ -367,38 +376,30 @@ public class HgLogChangesetCommand extends AbstractCommand
*
*
* @param in
* @param changeset
* @param propertyKey
*
* @return
*
* @throws IOException
*/
private String readId(HgInputStream in) throws IOException
private String readId(HgInputStream in, Changeset changeset,
String propertyKey)
throws IOException
{
String nodeString = null;
if (config.isShowRevisionInId())
{
Integer rev = in.readDecimal();
if (rev != null)
{
nodeString = String.valueOf(rev);
changeset.setProperty(propertyKey, String.valueOf(rev));
}
else
{
nodeString = "-1";
}
in.upTo(':');
nodeString = nodeString.concat(":").concat(in.nextAsText(40));
}
else
{
in.upTo(':');
nodeString = in.nextAsText(40);
}
return nodeString;
in.upTo(':');
return in.nextAsText(40);
}
/**