p4v как синхронизировать только файлы рабочей области - PullRequest
1 голос
/ 28 марта 2012

P4V v2011.1

Теперь p4v выполняет синхронизацию всего в папке, которую я хочу синхронизировать. Однако в моем случае в папке может быть много подпапок, где мне может понадобиться только синхронизировать 50 из них и пропустить еще 50 подпапок. Поскольку мы не хотим тратить пропускную способность на передачу нежелательных файлов, ни щелкнуть правой кнопкой мыши на 50 подпапках для синхронизации по отдельности. Есть ли простой способ синхронизировать ТОЛЬКО файлы, которые находятся в моей рабочей области?

Ответы [ 2 ]

4 голосов
/ 28 марта 2012

Как насчет редактирования представления рабочего пространства, чтобы оно указывало только папки, которые вы явно хотите, и избегало использования подстановочного знака '...' для рекурсивного включения подпапок?

2 голосов
/ 28 марта 2012

Это возможно через командную строку, используя спецификатор #have.

p4 fstat -T depotFile //...#have | p4 -x – sync
  1. p4 fstat -T depotFile //...#have возвращает спецификацию файлов депо для файлов, которые в данный момент находятся в вашем рабочем пространстве.

  2. p4 -x – sync принимает выводиз предыдущей команды (с использованием канала |) и выполняет синхронизацию.

...

Если вы хотите это в P4V, вы можете написать пользовательский инструмент , который вызывает скрипт WSH.

var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("p4 fstat -T depotFile //...#have | p4 -x – sync");    
while (oExec.Status == 0)
    WScript.Sleep(100);

WScript.Echo(oExec.Status);

Примечание: Использование вышеуказанного подхода с #have не синхронизирует никакие вновь добавленные файлы.Не уверен, что это именно то, что вам нужно.


Другой способ - создать пакетный файл, который синхронизирует нужные вам спецификации файлов.У меня есть один, который я запускаю каждое утро, который синхронизирует несколько веток и проектов.

Чтобы создать свой собственный, откройте блокнот и добавьте необходимые p4 sync команды одну за другой.

p4 sync //projectA/...
p4 sync //projectB/folder1
p4 sync //projectB/folder2
...
p4 sync //projectB/folder5

Немного работы для первоначальной настройки.

или

Возможно, лучше, чем командный файл или сценарий, использовать два рабочих пространства с первым с сопоставленным полным депо и вторым с использованием ограниченного сопоставления, которое требуется для 90%время.

...