Branch normalizer should not normalize already valid branch names
Change-Id: Ib746655e32a37c4ad323f1d12ac0817de8fa56cf Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
d4bd09b78d
commit
f8d232213c
|
@ -329,4 +329,18 @@ public void testNormalizeBranchName() {
|
||||||
Repository.normalizeBranchName("Bug 1#$ 2345 - Hello World")
|
Repository.normalizeBranchName("Bug 1#$ 2345 - Hello World")
|
||||||
.equals("Bug_12345-Hello_World"));
|
.equals("Bug_12345-Hello_World"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNormalizeAlreadyValidRefName() {
|
||||||
|
assertEquals(true,
|
||||||
|
Repository.normalizeBranchName("refs/heads/m.a.s.t.e.r")
|
||||||
|
.equals("refs/heads/m.a.s.t.e.r"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNormalizeTrimmedUnicodeAlreadyValidRefName() {
|
||||||
|
assertEquals(true,
|
||||||
|
Repository.normalizeBranchName(" \u00e5ngstr\u00f6m\t")
|
||||||
|
.equals("\u00e5ngstr\u00f6m"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1898,11 +1898,12 @@ public void autoGC(ProgressMonitor monitor) {
|
||||||
* Future implementations of this method could be more restrictive or more
|
* Future implementations of this method could be more restrictive or more
|
||||||
* lenient about the validity of specific characters in the returned name.
|
* lenient about the validity of specific characters in the returned name.
|
||||||
* <p/>
|
* <p/>
|
||||||
* The current implementation returns a trimmed string only containing word
|
* The current implementation returns the trimmed input string if this is
|
||||||
* characters ([a-zA-Z_0-9]) and hyphens ('-'). Colons are replaced by
|
* already a valid branch name. Otherwise it returns a trimmed string only
|
||||||
* hyphens. Repeating underscores and hyphens are replaced by a single
|
* containing word characters ([a-zA-Z_0-9]) and hyphens ('-'). Colons are
|
||||||
* occurrence. Underscores and hyphens at the beginning of the string are
|
* replaced by hyphens. Repeating underscores and hyphens are replaced by a
|
||||||
* removed.
|
* single occurrence. Underscores and hyphens at the beginning of the string
|
||||||
|
* are removed.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name
|
||||||
* The name to normalize.
|
* The name to normalize.
|
||||||
|
@ -1916,6 +1917,11 @@ public static String normalizeBranchName(String name) {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
String result = name.trim();
|
String result = name.trim();
|
||||||
|
String fullName = result.startsWith(Constants.R_HEADS) ? result
|
||||||
|
: Constants.R_HEADS + result;
|
||||||
|
if (isValidRefName(fullName)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
return result.replaceAll("\\s+([_:-])*?\\s+", "$1") //$NON-NLS-1$//$NON-NLS-2$
|
return result.replaceAll("\\s+([_:-])*?\\s+", "$1") //$NON-NLS-1$//$NON-NLS-2$
|
||||||
.replaceAll(":", "-") //$NON-NLS-1$//$NON-NLS-2$
|
.replaceAll(":", "-") //$NON-NLS-1$//$NON-NLS-2$
|
||||||
.replaceAll("\\s+", "_") //$NON-NLS-1$//$NON-NLS-2$
|
.replaceAll("\\s+", "_") //$NON-NLS-1$//$NON-NLS-2$
|
||||||
|
|
Loading…
Reference in New Issue