我想修改Redgate源代码控制Git.xml文件以包含提交和推送

时间:2012-10-31 10:47:30

标签: redgate

以下是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>

但是没有工作,关于如何获得提交和推动工作的任何想法

2 个答案:

答案 0 :(得分:5)

问题在于裸露的&符号。将行更改为:

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

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

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

答案 1 :(得分:0)

使用SQL Source Control获得的命令文件仅用于同步本地存储库,而不是用于推/拉。

我认为你提出的任何一种方法都不会起作用 - 首先,我认为该工具甚至不知道运行第二个命令,而对于第二个选项我不相信你可以连接这样的命令。

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

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