2015-06-14 5 views
4

Я спрашиваю, как переключиться с client1 на client2, где client1 принадлежит stream1, а client2 принадлежит stream2.Perforce - переключиться в рабочее пространство из командной строки

То, что я ищу это сделать то же самое как в P4V, а затем щелкните правой кнопкой мыши на рабочем пространстве и выберите «переключатель в рабочую область»

Обратите внимание, что если текущая рабочая область client1 и вы используете:

p4 client -s -S //DEPOT/stream2 

или

p4 client -s S //DEPOT/stream2 client2 

это не изменит рабочее пространство в GUI P4V.

Любая идея?

Спасибо!

ответ

8

Здесь представлено несколько различных концепций.

У вас может быть одно рабочее пространство, или вы можете иметь несколько рабочих областей.

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

Если у вас есть одно рабочее пространство, вы можете переключать это рабочее пространство взад и вперед из одного потока в другой, используя команду «client -s» для переключения потока, к которому привязано это рабочее пространство. Таким образом, вы можете чередовать работу одного потока и работу над другим, используя одно рабочее пространство. В самых последних версиях сервера Perforce (2015.1+) есть даже команда «p4 switch», которая делает этот процесс еще проще.

Переключение одного рабочего пространства из одного потока в другой в командной строке с использованием «client -s» - это эквивалент перетаскивания значка рабочего пространства из старого потока в новый поток в Stream Graph, более или менее.

Вы также можете иметь несколько рабочих пространств, каждый из которых имеет независимый набор файлов sync'd, и вы можете работать с каждой рабочей областью отдельно. В командной строке, чтобы переключиться с одного рабочего пространства на другое, вы просто измените способ, которым вы указываете команду «p4», какой клиент вы хотите использовать, что вы можете сделать с переменной P4CLIENT или с помощью флага «-c» клиент. Например:

p4 -c client1 sync 

против

p4 -c client2 sync 

говорит клиент p4 для синхронизации первого client1, затем client2. Кроме того, вы можете сделать:

p4 set P4CLIENT=client1 
p4 sync 

затем

p4 set P4CLIENT=client2 
p4 sync 

для достижения того же эффекта (переключение между одной рабочей области, а другой в командной строке).

P4V, однако, имеет собственное понятие «текущего рабочего пространства», которое отделено от командной строки, и я не считаю, что просто изменить свою переменную P4CLIENT достаточно, чтобы выполнить операцию P4V «правой кнопкой мыши» в рабочей области и выбрав «переключатель в рабочее пространство».

Самое близкое, что вы можете получить в команде командной строки, которая изменяет рабочую область P4V как текущую рабочую область, я думаю, это вызвать другую копию P4V из командной строки и указать другое имя клиента когда вы делаете так, как описано здесь: http://www.perforce.com/blog/100114/p4v-secrets-calling-p4v-command-line

Но я думаю, что это поможет вам новое окна P4V с другой рабочей областью, а не изменять текущее рабочее пространство вашего текущего окна P4V.

Еще одна возможность, которую вы могли бы попробовать, - использовать один из инструментов автоматизации Windows GUI, например Autoit (https://www.autoitscript.com/site/), для создания сценария, который будет использовать меню «Соединение» в строке меню и управлять переключателем в рабочей области. . через Autoit.

+0

Большое вам спасибо за подробный ответ! Я совершенно новичок в Perforce, и хорошо знать секреты p4v. Я буду использовать его с -c. Вы мне очень помогли! Спасибо! –