static SyncItem ProcessMergeRequestChanges(MergeRequest mergeRequest, MergeRequestFileData fileData, string localGitDir, TrackBranch branch, string token) {
string vcsRoot = branch.RepoRoot;
var syncItem = new SyncItem();
if (fileData.IsNew) {
syncItem.SyncAction = SyncAction.New;
syncItem.LocalPath = CalcLocalPath(localGitDir, branch, fileData.OldPath);
syncItem.VcsPath = CalcVcsPath(branch, fileData.OldPath);
}
else if (fileData.IsDeleted) {
syncItem.SyncAction = SyncAction.Delete;
syncItem.LocalPath = CalcLocalPath(localGitDir, branch, fileData.OldPath);
syncItem.VcsPath = CalcVcsPath(branch, fileData.OldPath);
}
else if (fileData.IsRenamed) {
syncItem.SyncAction = SyncAction.Move;
syncItem.LocalPath = CalcLocalPath(localGitDir, branch, fileData.OldPath);
syncItem.NewLocalPath = CalcLocalPath(localGitDir, branch, fileData.NewPath);
syncItem.VcsPath = CalcVcsPath(branch, fileData.OldPath);
syncItem.NewVcsPath = CalcVcsPath(branch, fileData.NewPath);
}
else {
syncItem.SyncAction = SyncAction.Modify;
syncItem.LocalPath = CalcLocalPath(localGitDir, branch, fileData.OldPath);
syncItem.VcsPath = CalcVcsPath(branch, fileData.OldPath);
}
syncItem.Comment = CalcComment(mergeRequest, branch, token);
return syncItem;
}
static string CalcLocalPath(string localGitDir, TrackBranch branch, string path) {