Я хочу изменить файл Git.xml управления исходным кодом Redgate, чтобы включить коммит и push
Ниже приведена выдержка для файла git.xml в системе контроля версий Redgates.
<element>
<key type="string">Commit</key>
<value version="1" type="GenericHookCommand">
<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\"</CommandLine>
<Verify>exitCode == 0</Verify>
</value>
</element>
Я хочу изменить это, чтобы включить толчок, поэтому, когда вы делаете коммит в студии управления, это также толчок к гиту.
я попытался добавить еще одну команду, как
<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\"</CommandLine>
<commandline>git push</commandline>
а также попробовал
<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\" && git push</CommandLine>
но ни работа, ни идея о том, как получить коммит и заставить работать
2 ответа
Проблема с голыми амперсандами. Измените строку на:
<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\" && git push</CommandLine>
Вы также можете обернуть его в CDATA, но вышесказанное мне подходит.
Примечание. Если для функции push или pull вам потребуется ввести пароль, то плагин Red Gate остановится и вынудит вас убить SSMS. Поэтому убедитесь, что вы можете использовать git pull и git push через командную строку, прежде чем обновлять XML.
Командный файл, который вы получаете с помощью SQL Source Control, действительно предназначен только для синхронизации вашего локального репо, а не для выполнения push-pull.
Я не думаю, что какой-либо из предложенных вами методов сработает - во-первых, я не думаю, что инструмент даже знал бы, что нужно выполнить вторую команду, а для второго варианта я не верю, что вы можете объединить команды в сюда.
Единственное предложение, которое у меня есть (и это никогда не было проверено AFAIK), это написать свой собственный пакетный файл DOS (или PowerShell, если это ваша вещь), который принимает те же параметры, а затем запускает две команды, которые вы хотите.
Затем вы можете создать новый файл конфигурации для SQL Source Control, чтобы выполнить ваш пакет /powershell вместо непосредственно git.