Я пытаюсь создать новую ветку с использованием API и использовал как PendBranch()
, так и CreateBranch()
. Проблема с CreateBranch()
заключается в немедленной фиксации, и я хочу иметь возможность добавлять комментарии, когда ветка проверена. Итак, я сделал то, что я сделал, показано ниже.Как создать новую ветку исходного кода, используя TFS API?
В основном я получаю всю информацию, такую как элемент сервера и локальный элемент, который будет отображаться, а также источник и цель ветки из моего приложения Windows.
Как-то, когда я вижу Source Control Explorer, он по-прежнему говорит «не отображается» даже если я дал: workspace.Get()
после создания рабочего пространства и workspace.Map(serverItem,localItem)
Может кто-нибудь пролить свет на это?
public void CreateNewBranch(string server,string serverItem,string localItem,string sourceBranch, string targetBranch)
{
int changeSetNumber = 0;
// Get a reference to Team Foundation Server and Source Control.
tfs = GetTFS(server);
// Create a new workspace for the currently authenticated user.
workspace = tfvc.CreateWorkspace("Example Workspace", tfvc.AuthenticatedUser);
}
// Create a mapping to the project.
try
{
workspace.Map(serverItem, localItem);
// Get the latest source files from the repository.
//workspace.Get();
// Perform a pending Branch operation.
workspace.PendBranch(sourceBranch, targetBranch, VersionSpec.Latest);
// Get a list of all the Pending Changes.
PendingChange[] pendingChanges = workspace.GetPendingChanges();
if (pendingChanges.Length > 0)
{
changeSetNumber = workspace.CheckIn(pendingChanges, "Comment:Branch Created");
MessageBox.Show("Checked in changeset # " + changeSetNumber);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
// Cleanup the workspace.
workspace.Delete();
}
}
Так же, как он говорит - новый филиал не загружается на локальный диск, пока вы не создадите рабочую область для чтобы жить, а затем попросите TFS выполнить загрузку. Опуская дополнительные шаги, подобные этим, почему решение Мартина проще и быстрее. Конечно, если вам нужна локальная копия, их не обойти. –