2016-11-29 5 views
1

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

Однако , когда я запускаю p4v, мне нужно вручную найти рабочее пространство, которое я хочу загрузить. Поскольку контекст команд p4 для запуска уже известен в оболочке, как я могу передать это на p4v, поэтому он будет запущен в той же рабочей области. Нет причин, по которым я должен был бы выбрать рабочую область при запуске инструмента, так как инструментальная цепочка p4 уже может самостоятельно определять контекст.

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

+0

кажется, что этот вопрос является обратным другой вопрос: http://stackoverflow.com/questions/9885053/perforce-p4-command-line-is-not-using- same-client-as-the-one-used-in-p4v И я нашел в http://answers.perforce.com/articles/KB/2911, что prefs p4v находятся в ~/.p4qt /, но я 'm еще не уверен, как взять переменные окружения p4 и перевести их непосредственно в p4v prefs или p4v параметры командной строки, чтобы по умолчанию оно отображало правильное рабочее пространство. – mattgately

ответ

2

Как вы уже нашли, P4V имеет свой собственный файл настроек и игнорирует среду оболочки. За это сообщение в блоге:

https://www.perforce.com/blog/100114/p4v-secrets-calling-p4v-command-line

так, как я бы справиться с этим было бы написать сценарий/псевдоним, который оборачивает P4V и передает текущую среду к нему. Что-то вдоль этих линий:

$_ = `p4 -Ztag -F "%serverAddress%@%clientName%@%userName%" info`; 
@env = split /\@/; 
exec "p4v -p $env[0] -c $env[1] -u $env[2]"; 
+0

Спасибо Сэму за то, что вы начали с форматирования 'p4 info'. Мне не удалось получить код для выполнения напрямую, но в качестве примера я разместил свое окончательное решение _bash_. – mattgately