以下是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>
但是没有工作,关于如何获得提交和推动工作的任何想法
答案 0 :(得分:5)
问题在于裸露的&符号。将行更改为:
<CommandLine>git commit -F "($MessageFile)" -o "($ScriptsFolder)\" && 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。