Я пытаюсь автоматизировать вытягивание последней версии нашего кода из битбакета с помощью git.exe через psake в Powershell, но я борюсь с рядом проблем.git и psake от Powershell
У меня есть следующий код в задаче:
Exec {
&('c:\Program Files\Git\bin\git.exe') pull --progress --no-rebase -v origin
}
, но я получаю следующее сообщение об ошибке:
Error: 25/04/2016 22:51:02:
At C:\work\mycompany\buildapp\psakefile.ps1:117 char:5 +
&('c:\Program Files\Git\bin\git.exe') pull --progress --no-rebase -v origin
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[<<==>>] Exception: From bitbucket.org:mybitbucketusername/work
Я предполагаю, что это потому, что я не называю git.exe от моего clone, но как это сделать? Есть ли способ: a) вызвать git из моего текущего местоположения и применить его к определенной папке клонов? или b) если a) не может быть сделано, как мне изменить папку в psake?
Предполагая, что я могу исправить первую проблему, как я могу узнать точную ошибку, возвращаемую из git. Просто получение Исключения: С bitbucket.org слишком расплывчато.
Есть ли лучший способ вывести мой код из битбакета? Должен ли я назвать git bash (для Windows), используя psake из Powershell? Это лучше? Если да, то как мне его вызвать с помощью конкретной командной строки.
Если вы хотите, чтобы я предоставил дополнительную информацию, пожалуйста, дайте мне знать.
Update 1:
Это то, что я получаю, когда я называю git pull
Error: 26/04/2016 15:46:30:
At C:\work\mycompany\buildapp\psakefile.ps1:120 char:5 +
&('c:\Program Files\Git\bin\git.exe') pull +
[<<==>>] Exception: There is no tracking information for the current branch.
Это следует ожидать, как C: \ работа \ MyCompany \ buildapp не клонировали папку. Это подпапка клонированной папки.
Мне нужно иметь возможность называть git в то время как в c:\work\mycompany\buildapp
(как это работает мой скрипт), но мне нужно git, чтобы вытащить данные из c:\work\mycompany\
.
Надеюсь, что это проясняет мой вопрос.
Спасибо.
UPDATE 2:
следующие командные строки Git работают отлично работает в командной строке вызывается из любой папки:
git clone [email protected]:myusername/work.git "c:/Work/"
git --git-dir=c:\work\.git --work-tree=c:\work pull origin master
следующие работы с PSake:
Exec {
&('c:\Program Files\Git\bin\git.exe') clone
[email protected]:myusername/work.git 'C:/Work/'
}
Но по-прежнему не работает, когда называется так:
exec {
&('c:\program files\git\bin\git.exe') --git-dir=c:\work\.git
--work-tree=c:\work pull origin master
}
Я все еще получаю ошибку:
Error: 29/04/2016 10:06:36:
At C:\temp\buildapp\psakefile.ps1:124 char:8 +
&('c:\program files\git\bin\git.exe') --git-dir=c:\work\.git - ... +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[<<==>>] Exception: From bitbucket.org:myusername/work
К сожалению, исключение не говорят нам много.
Я пробовал различные комбинации с кавычками/двойной цитатой с аргументами, но безрезультатно.
Любые идеи?
Есть ли еще эта ошибка? Или выше или ниже этого фрагмента? Это подобрало ваш пульт, поэтому он должен находиться в вашем рабочем каталоге git. Возможно, вам не хватает необходимых учетных данных? –
Из git -h output: '[--git-dir =] [--work-tree = ]', поэтому вам просто нужно указать те, которые будут запускать git в любом месте. Альтернативой было бы использовать Invoke-WebRequest, чтобы получить zip с последним источником из битбакета. Я думаю, –
stijn
@EtanReisner - Нет, к сожалению, это полная ошибка, которая была отображена. Я изменил свой ssh, чтобы не перефразировать и не проверить его, и он работает так, как ожидалось, поэтому я не думаю, что это учетные данные. Любые другие идеи? – Thierry