Загрузка депо в perforce
Я новый пользователь perforce (из svn) и использую графический интерфейс p4v. я хочу иметь локальную копию папки в чьем-то хранилище, но не уверен, как это сделать. Я хочу закончить с местной копией, которая предназначена только для меня, чтобы исследовать и смотреть вокруг. Я не хочу, чтобы она находилась под ревизионным контролем. Просто нужно, чтобы это было так, как если бы я скачал папку из интернета, свободно делать с ней все, что угодно. Как я могу сделать это в p4v?
2 ответа:
После синхронизации файлов вы можете делать с ними все, что захотите. Волей-неволей помечает файлы как доступные только для чтения, если только они не открыты для редактирования, поэтому я бы синхронизировал хранилище, скопировал его в новое место на жестком диске, а затем пометил все файлы, доступные для записи.
Кроме того, если все, что вы хотите сделать, это посмотреть на файлы, вы можете просто синхронизировать хранилище и открыть файлы. Вы даже можете проверить их (при условии, что у вас есть разрешения) и просто не отправлять эти изменения, если вы хотите лудильщик.
Эти 2 функции помогут вам начать работать.
public Repository GetRepository(string i_Workspace, string i_Username, string i_Password, string i_Server) { Repository rep; Server server; ServerAddress address; // Create the repository address = new ServerAddress(i_Server + ":1666"); server = new Server(address); rep = new Repository(server); rep.Connection.UserName = i_Username; Perforce.P4.Options options = new Perforce.P4.Options(); options["Password"] = i_Password; Environment.SetEnvironmentVariable("P4PASSWD", i_Password); rep.Connection.Client = new Client(); if (i_Workspace != null && i_Workspace != string.Empty) { rep.Connection.Client.Name = i_Workspace; } rep.Connection.Connect(options); rep.Connection.CommandTimeout = System.TimeSpan.Zero; rep.Connection.Login(i_Password); return rep; } private Client createWorkspace(string i_DepotPath, string i_RootDirectory) { string workspaceName = "workspace" + new Random().Next().ToString(); Repository rep = GetRepository(string.Empty); Client client = new Client(); client.Name = workspaceName; client.Root = i_RootDirectory; client.OwnerName = k_DefaultUser; client.ViewMap = new ViewMap(); client.Options = ClientOption.AllWrite; client.LineEnd = LineEnd.Local; client.SubmitOptions = new ClientSubmitOptions(false, SubmitType.SubmitUnchanged); string depotPath = i_DepotPath + "/..."; String clientPath; //clientPath = String.Format("//{0}/{1}/...", client.Name, i_DepotPath.Replace("//depot/", string.Empty)); clientPath = "//" + client.Name + "/..."; MapEntry entry = new MapEntry(MapType.Include, new DepotPath(depotPath), new ClientPath(clientPath)); client.ViewMap.Add(entry); rep.CreateClient(client); return client; }