SVNサーバーには、というファイルがありますconfig.conf
。同じもの(同じ場所)というローカルバージョンがあります。ローカル設定が上書きされたり、チェックインされたりしないようにするにはどうすればよいですか?
私がここにいる間、ディレクトリの答えは異なりますか?
Tortoise SVNを使用していますが、コマンドラインの回答はすばらしいです。
ありがとう!
[この基本的な質問が以前に行われたことがある場合は申し訳ありません...私は見ましたが見つかりませんでした。]
TortoiseSVN には、この問題の半分に対する適切な回答があります: ignore-on-commit
これにより、「ローカルのみ」の変更を誤ってコミットすることはなくなりますが、ローカルで変更されたファイルを誤って更新するという問題は解決しません。
以下の詳細な方法については、このブログ投稿をご覧ください。
http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html
みなさん、ありがとうございました。エオインは怒っているのではないかと思いましたが、実はそうです。バージョン管理されているファイルを無視することはできません。
亀のドキュメントによると
バージョン管理されたアイテムを無視する
バージョン管理されたファイルとフォルダーは無視できません。これはSubversionの機能です。誤ってファイルをバージョン管理した場合は、「バージョン管理を解除」する方法について、「すでにバージョン管理されているファイルを無視する」というセクションをお読みください。
そしてSVNドキュメントから
私のプロジェクトには、すべての開発者が変更しなければならないファイルがありますが、それらのローカルmodをコミットしたくありません。'svn commit'にファイルを無視させるにはどうすればよいですか?
答えは、そのファイルをバージョン管理下に置かないことです。代わりに、「file.tmpl」のように、ファイルのテンプレートをバージョン管理下に置きます。
次に、最初の「svn checkout」の後で、ユーザー(またはビルドシステム)にテンプレートの通常のOSコピーを適切なファイル名で実行させ、ユーザーにコピーをカスタマイズしてもらいます。ファイルはバージョン管理されていないため、コミットされることはありません。また、必要に応じて、ファイルをその親ディレクトリのsvn:ignoreプロパティに追加して、「?」として表示されないようにすることができます。'svnstatus'コマンドで。
これはひどく面倒です...私はそのファイルに注意して、自分の構成のバックアップコピーを作成する必要があると思います(これは無視できます)。
皆さんの回答に感謝します。
config.confまたは*.confを除外するローカルフォルダーにsvn-ignore:属性を追加できます。
ただし、このファイルをSVNから完全に除外する必要があると思います。つまり、既にリポジトリにチェックインされている場合は、最初にリポジトリからファイルを削除する必要があります。
同じ名前を付けて同じディレクトリに貼り付けると、SVNは常にそのファイルがリポジトリの一部であると見なします。あなたのオプションは
mv config.conf config.conf.theirs && mv config.conf.mine config.conf
アプリを実行します)ファイルを無視すると、次のようになります。
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-ignore.html
構成ファイルを使用してサブバージョニングが行われる場合、トランク全体を専用にすると非常に便利であることがわかりました。なんで?ほとんどの理由は、2 つのローカル リポジトリ コピー (1 つはローカル使用用、もう 1 つはリモート チャンニング用) を持つことができるためです。
このような:
/workdir/configuration [ /workdir/conf_local へのリンクです]
/workdir/conf_local [ローカルの conf を更新したままにしますが、設定を上書きしません]
/workdir/conf_remote [常にリモート データで更新されるため、変更をコミットできます]
あなたがどのような設定をしているのか、あるいはあなたがたまたま使用している言語にこれが当てはまるかどうかはわかりませんが、これは私が Web サイトと PHP で行っている方法です。
最初に、デフォルト構成を作成します。これには、90% のセットアップで機能しない単純な値が含まれている可能性がありますが、そこにある値と実際に構成できるものについての参照が得られます。このスクリプトは通常、「config.default.php
」または同様の意味で呼ばれます。このスクリプトの最後には、次のような内容があります。
if (file_exists("config.php")) require "config.php";
シンプルなロジック。構成ファイルのユーザーオーバーライドがある場合は、それをロードして、必要なものをオーバーライドさせます。次に、すべての開発マシン、および何らかの理由で svn チェックアウトを保持する本番マシンで既に説明した方法を使用して、このユーザー構成ファイルを無視したままにします。これは非常に柔軟なセットアップであり、ほとんどの言語/環境で同様の手順をセットアップできます。
Scrappydogが指摘したように
コミットダイアログボックスで異なるリストを使用/作成できます
コミット時の無視リストをサポートしているため、このリストの下のファイルは表示されません..
詳細については、 このブログ リンクを参照してください。
http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html