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ソース管理で取得するコマンドファイルは、実際にはローカルリポジトリを同期するように設計されており、プッシュ/プルを実行するようには設計されていません。

あなたが提案したどちらの方法もうまくいくとは思いません-最初に、ツールが2番目のコマンドを実行することさえ知らないと思います、そして2番目のオプションについては、コマンドを連結できるとは思いませんそのように。

私が持っている唯一の提案(そしてAFAIKを試したことはありません)は、同じパラメーターを取り、必要な2つのコマンドを実行する独自のdosバッチファイル(またはそれがあなたのものである場合はPowerShell)を作成することです。

次に、SQLソース管理用の新しい構成ファイルを作成して、gitの代わりにバッチ/PowerShellを直接実行できます。

于 2012-10-31T16:50:38.730 に答える