SVN - どのように私は事前にコミット上のファイルを傍受し、変更または追加するには?

StackOverflow https://stackoverflow.com/questions/1347926

  •  20-09-2019
  •  | 
  •  

質問

私はこれがも可能ですわからないまず第一に、しかし、私はそれを行うことができます方法を知っておく必要がない場合は、なぜない?

私は、コミットするために別のファイルを追加しますSubversionのリポジトリ(プリコミット私は信じている)のコミット処理中に適切な時間に実行されるC#アプリケーションを作成したい。

たとえば、私はProgram.csのへの変更、およびMain.csが、 にしないでAssemblyInfo.csを作ります。私はAssemblyInfo.csへの変更またはそのことについては任意のファイルを強制することができるようにしたい。

私は、ファイルを置き換えコミットポストに発砲SharpSVNを使用して、コンソールアプリケーションを書いたが、これはリビジョン番号の増分を引き起こしました。明らかにそれは理想的ではないのです。

私は、上で実行されますSharpSVN内SvnLookClient事前にコミットして何かを書き始めていたが、私はCopyFromPathは私が期待したものを意味するものではありませんでした気づいたとき行き止まりを打つます:

    using (SvnLookClient client = new SvnLookClient())
    {
        SvnLookOrigin o = new SvnLookOrigin(@"\\server\repository");
        SvnChangedArgs changedArgs = new SvnChangedArgs();
        Collection<SvnChangedEventArgs> changeList;
        client.GetChanged(o, changedArgs, out changeList);
    }

また、私はC#のこの外側を行うために解決しますが、理想的に私はまた、データベーススクリプトなどで実行されているように他のタスクを実行するために私のリポジトリサーバーを伝えることができるようにC#のコンソールアプリケーションでそれをやってみたいです

役に立ちましたか?

解決

あなたはフックスクリプト中にトランザクションを変更してはなりません。あなたはどちらか拒否メッセージ(にコミットすることができます標準エラー出力は、コミット後にコミット)クライアントのに送られた、または別でそれを行うされます。

[編集] 私は明確にしたいの理由が取引を修正することは悪い考えである(SVN-技術的に):

クライアントはそれについて何も知りません。

「OK」を除き、「FAILED」とstderr出力なしバックチャネルは、コミット時にサーバーからクライアントにありません。

成功したことが報告されている場合、クライアントはその変更をコミットし、コミット

、それはリポジトリのバージョン[XYZ]と同期であることをそのローカルファイルとフォルダのステータスをマークします。後で何かを変更する場合、例えば、ローカルにファイルを追加し、それはそれらの変更をコミットしたいが、その後...さて、あなたは何が起こるかを知るしようとすることができ、私は、「チェックサムエラー」またはに沿って何か「ファイルが既に追加」を期待。変更の種類に応じて、あなたはおそらく、フォルダを削除することによって、より作業WCを取得し、損傷部分の新鮮なチェックアウトを行うには良いチャンスを持っていないだろう。

これは技術的な部分でした。今、開発者側:まず、自動的に固定変更が正しくスマートようだが、それが原因ソースは事前に計算可能であるかどう、私たちはそれは開発者が書いてみましょうする必要はないという単純な事実に、失敗します。あなたは、開発者が正しいことをしたい。

この教育を通じて最高の作品:彼らはの正しいことは何であるかの知っている必要があります。彼らは何かを知るための良い対策は、彼らにフィードバックを与えて、どんな種類の古き良き訓練に追加されます。

SVNサーバからエラーメッセージは、後に壊れた自動メールが構築またはユニットテストは、静的ソースコード解析ツールからの結果は、等は、また、良好な教育ツールとして作用することができる。

私が使用することをお勧めします継続的インテグレーション、そしてそこにソースツリーを検証します。これにより、開発者は、長い一日の仕事の後に彼の変更をコミットするためにブロックされることはありませんが、あなたはまだソースツリーの状態を知っているという利点があります。

そして、私は今ちょうどあなたが達成しようとしたいのかを推測:サーバー側のソースツリーは常に「機能」しなければなりません。そして、問題はさらに自動ファイル固定、事前にコミットユニットテスト、スタイルチェックして何とということです、あなたは、最終的には、まだ古いスタイルのシステム・テストにより、プログラムが実際に動作するかどうかを確認する必要があります。だから、基本的に、あなたが本当に何を得ることはありません。

テクノロジーは、考え抜かれたツールはとてもよく、実際のプロセスを以下は、開発者が時間を節約し、そのワークフローが簡素作りに役立つこと、それをサポートして、プロセスをサポートすることができます。しかし、この技術は、通常のプロセスを置き換えることはできません、それは(少なくとも、今のところ)人間の知能を置き換えることはできません。 [/編集]

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top