web-dev-qa-db-ja.com

Subversionに未変更のファイルをコミットさせるにはどうすればよいですか?

ファイルが変更されていなくても、Subversionにファイルをコミットさせます。これを行う方法はありますか?

56
pcorcoran

ファイルの内容を変更しないままにする場合(johnstokが示唆したように空白を変更することはできないことを意味する)、ファイルのプロパティの1つをいつでも変更できます。

例えば。

 svn propset dummyproperty 1 yourfile 
 svn commit yourfile 

これにより、ファイルを変更せずにコミットが実行されます。

特別なsvn: プロパティ。それ以外は大丈夫です。


編集:他の多くのポスターが、なぜ誰かがこれをしたいのかと尋ねました-おそらく、この答えを書き留めた人々も同じ懸念を持っていたでしょう。

私は元のポスターについて話すことはできませんが、これが使用されているのを見たシナリオの1つは、Visual Sourcesafeリポジトリ上のアクティビティをSubversionリポジトリと自動的に同期しようとするときです。

65

なぜ強制コミットをしたいのかという答えについて。誰かが間違っているか不明瞭なコミットメッセージを使用した場合を見てきました。この間違いを修正できる強制コミットを実行できると便利です。こうすると、更新されたコミットメッセージがリポジトリに送られるため、失われません。

5
user253217

問題のあるファイルを削除してから再度追加することで、これを冷やしました。それを行うのに最適な方法ではなく、おそらく改訂履歴を壊しましたが、それは私の目的に合っていました。

やりたい理由:ファイルは、同じソースから(異なる#definesセットで)ビルドされた2つの実行可能ファイルの1つでした。ソースへのわずかな変更は、変更されたが、変更されなかったことを意味します。改訂履歴に、実際に最新バージョンに更新したことを記録したかった(変更はありませんでしたが)。

おそらく、Morten HoldflodMøllerの「ファイルは新しいリビジョンの一部である」という点がこの兆候をカバーするでしょうが、変更されていないファイルのログにはそのリビジョンのコメントは表示されなかったと思います。

4
Mat

これに疑問を呈する一部の人々に答えることは可能です。何らかの理由でsvnはdocファイルの違いを認識しないので、同様に強制的にコミットしたいと思います!

現在、ドキュメントを静的ディレクトリからsvnに移動しています。ファイルはUG_v1.2、UG_v1.3などのようなものです。したがって、履歴を保持するために、1.2を取得し、ファイル名からバージョンを削除して、svnに追加してコミットします。次に、2番目のバージョンからverを取得し、最初のバージョンにコピーして、新しいバージョンをコミットします。ファイルサイズと作成日は変更されますが(ドキュメント内の内容は言及しません)、svnは完全に同じファイルであると主張し、コミットすることを許可しません。ドキュメントを手動で変更すると、svnが別のものを認識します。一体? :>

2
agata

テキストファイルの場合は、改行などの空白を追加します。

2
johnstok

私はそれが可能だとは思いませんが、まず第一にそれをする必要があるのはなぜですか?ファイルが変更されていない場合、コミットしないでください。

コミットでそのファイルを本当に他のファイルとグループ化したい場合は、内部の小さなものを変更できます(たとえば、スペースを追加します)。

0
rslite

誰かが未変更のファイルをコミットしたい理由は、ファイルの以前のバージョンに戻す方法の誤解です。

たとえば、ファイルを元に戻すindex.htmlリビジョン68過去のリビジョンに更新するだけで、例えば65

svn update index.html -r 650

しかし、それは問題を解決しません:

 svn status -u index.html 
 * 650 index.html 
リビジョンに対するステータス:680 

svnは、index.htmlがリモートで変更されていることを明確に述べており、それをコミットすることはできません。新しいリビジョンに更新されました。だから次のsvn updateはindex.htmlをリビジョンに戻します68

実際にファイルを元に戻すには、逆の順序でマージする必要があります。

svn merge -r 680:650 index.html

そして、それをコミットしますsvn ci -m "Reverted to r650" index.html

0