- workitems could be translated to a new Id and then this new Id could be translated again and again
- furthermore only initial substring of "#" + Id.ToString() could be translated in the case that Id.ToString() had different lengths
This commit is contained in:
Michal
2015-01-25 16:27:45 +01:00
committed by Philippe Miossec
parent 47d06b2cdb
commit 13dfe2c5d2
+23 -10
View File
@@ -459,16 +459,10 @@ namespace Sep.Git.Tfs.Core
{
if (ExportMetadatas)
{
if (changeset.Summary.Workitems.Any())
{
log.Log += "\nwork-items: " + string.Join(", ", changeset.Summary.Workitems.Select(wi => "#" + wi.Id)); ;
}
if (ExportWorkitemsMapping.Count != 0)
{
foreach (var mapping in ExportWorkitemsMapping)
{
log.Log = log.Log.Replace("#" + mapping.Key, "#" + mapping.Value);
if (changeset.Summary.Workitems.Any()) {
var workItemIds = TranslateWorkItems(changeset.Summary.Workitems.Select(wi => wi.Id.ToString()));
if (workItemIds != null) {
log.Log += "\nwork-items: " + string.Join(", ", workItemIds.Select(s => "#" + s));
}
}
@@ -529,6 +523,25 @@ namespace Sep.Git.Tfs.Core
return commitSha;
}
private IEnumerable<string> TranslateWorkItems(IEnumerable<string> workItemsOriginal) {
if (ExportWorkitemsMapping.Count != 0) {
List<string> workItemsTranslated = new List<string>();
if (workItemsOriginal != null) {
foreach (var oldWorkItemId in workItemsOriginal) {
string translatedWorkItemId = null;
if (oldWorkItemId != null && !ExportWorkitemsMapping.TryGetValue(oldWorkItemId, out translatedWorkItemId)) {
translatedWorkItemId = oldWorkItemId;
}
if (translatedWorkItemId != null) {
workItemsTranslated.Add(translatedWorkItemId);
}
}
}
workItemsOriginal = workItemsTranslated;
}
return workItemsOriginal;
}
private string FindRootRemoteAndFetch(int parentChangesetId, IRenameResult renameResult = null)
{
string omittedParentBranch;