3

以下是 redgates 源代码控制中 git.xml 文件的摘录

<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>

我希望对其进行修改以包含推送,因此当您在管理工作室中进行提交时,它也会推送到 git。

我尝试添加另一个命令,例如

<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\"</CommandLine>
<commandline>git push</commandline> 

也试过

 <CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\" && git push</CommandLine>

但两者都不起作用,任何关于如何获得提交和推动工作的想法

4

2 回答 2

5

问题在于裸与号。将行更改为:

<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\" &amp;&amp; git push</CommandLine>

您也可以将其包装在 CDATA 中,但以上内容似乎对我有用。

注意:如果推送或拉取需要您输入密码,则 Red Gate 插件将停止并强制您终止 SSMS。因此,请确保您可以在更新 XML 之前先通过命令行执行 git pull 和 git push。

于 2012-12-13T22:28:02.917 回答
0

您使用 SQL Source Control 获得的命令文件实际上只是为了同步您的本地存储库而设计的,而不是用于执行推/拉操作。

我认为您建议的任何一种方法都行不通-对于第一种,我认为该工具甚至都不知道运行第二个命令,而对于第二个选项,我不相信您可以将命令连接起来那样。

我唯一的建议(并且从未尝试过AFAIK)是编写自己的dos批处理文件(或powershell,如果那是你的东西),它接受相同的参数,然后运行你想要的两个命令。

然后,您可以为 SQL Source Control 创建一个新的配置文件,以直接执行您的批处理/powershell 而不是 git。

于 2012-10-31T16:50:38.730 回答