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