Это возможно через командную строку, используя спецификатор #have
.
p4 fstat -T depotFile //...#have | p4 -x – sync
p4 fstat -T depotFile //...#have
возвращает спецификацию файлов депо для файлов, которые в данный момент находятся в вашем рабочем пространстве.
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%время.