[pgm] Add describe --abbrev option
Change-Id: I8adf2fad21db71b43266d3f274143eee6bc9dce2
This commit is contained in:
parent
85d8b31cb2
commit
9c27002c49
|
@ -88,6 +88,31 @@ public void testDescribeCommitMatch() throws Exception {
|
|||
execute("git describe --match v1.*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescribeCommitMatchAbbrev() throws Exception {
|
||||
initialCommitAndTag();
|
||||
secondCommit();
|
||||
assertArrayEquals(new String[] { "v1.0-1-g56f6cebdf3f5", "" },
|
||||
execute("git describe --abbrev 12 --match v1.*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescribeCommitMatchAbbrevMin() throws Exception {
|
||||
initialCommitAndTag();
|
||||
secondCommit();
|
||||
assertArrayEquals(new String[] { "v1.0-1-g56f6", "" },
|
||||
execute("git describe --abbrev -5 --match v1.*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescribeCommitMatchAbbrevMax() throws Exception {
|
||||
initialCommitAndTag();
|
||||
secondCommit();
|
||||
assertArrayEquals(new String[] {
|
||||
"v1.0-1-g56f6cebdf3f5ceeecd803365abf0996fb1fa006d", "" },
|
||||
execute("git describe --abbrev 50 --match v1.*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescribeCommitMatch2() throws Exception {
|
||||
initialCommitAndTag();
|
||||
|
|
|
@ -229,6 +229,7 @@ unmergedPaths=Unmerged paths:
|
|||
unsupportedOperation=Unsupported operation: {0}
|
||||
untrackedFiles=Untracked files:
|
||||
updating=Updating {0}..{1}
|
||||
usage_Abbrev=Instead of using the default number of hexadecimal digits (which will vary according to the number of objects in the repository with a default of 7) of the abbreviated object name, use <n> digits, or as many digits as needed to form a unique object name. An <n> of 0 will suppress long format, only showing the closest tag.
|
||||
usage_Aggressive=This option will cause gc to more aggressively optimize the repository at the expense of taking much more time
|
||||
usage_AlwaysFallback=Show uniquely abbreviated commit object as fallback
|
||||
usage_bareClone=Make a bare Git repository. That is, instead of creating [DIRECTORY] and placing the administrative files in [DIRECTORY]/.git, make the [DIRECTORY] itself the $GIT_DIR.
|
||||
|
|
|
@ -44,6 +44,9 @@ class Describe extends TextBuiltin {
|
|||
@Option(name = "--match", usage = "usage_Match", metaVar = "metaVar_pattern")
|
||||
private List<String> patterns = new ArrayList<>();
|
||||
|
||||
@Option(name = "--abbrev", usage = "usage_Abbrev")
|
||||
private Integer abbrev;
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
protected void run() {
|
||||
|
@ -57,6 +60,9 @@ protected void run() {
|
|||
cmd.setTags(useTags);
|
||||
cmd.setAlways(always);
|
||||
cmd.setMatch(patterns.toArray(new String[0]));
|
||||
if (abbrev != null) {
|
||||
cmd.setAbbrev(abbrev.intValue());
|
||||
}
|
||||
String result = null;
|
||||
try {
|
||||
result = cmd.call();
|
||||
|
|
Loading…
Reference in New Issue