8

SVNサーバーには、というファイルがありますconfig.conf。同じもの(同じ場所)というローカルバージョンがあります。ローカル設定が上書きされたり、チェックインされたりしないようにするにはどうすればよいですか?

私がここにいる間、ディレクトリの答えは異なりますか?

Tortoise SVNを使用していますが、コマンドラインの回答はすばらしいです。

ありがとう!

[この基本的な質問が以前に行われたことがある場合は申し訳ありません...私は見ましたが見つかりませんでした。]

4

9 に答える 9

11

TortoiseSVN には、この問題の半分に対する適切な回答があります: ignore-on-commit

これにより、「ローカルのみ」の変更を誤ってコミットすることはなくなりますが、ローカルで変更されたファイルを誤って更新するという問題は解決しません。

以下の詳細な方法については、このブログ投稿をご覧ください。

http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html

于 2009-08-27T20:48:15.757 に答える
5
  1. svn:ignoreを使用してリポジトリから除外します(最初にリポジトリから削除する必要があります)
  2. プレースホルダー値を使用してconfig.conf.defaultにコピーを保持します。デフォルトのコピーをリポジトリに保持できます。
  3. 通常どおりconfig.confを使用します-subversionはそれをもう見ません
于 2008-10-24T13:12:11.593 に答える
4

みなさん、ありがとうございました。エオインは怒っているのではないかと思いましたが、実はそうです。バージョン管理されているファイルを無視することはできません。

亀のドキュメントによると

バージョン管理されたアイテムを無視する

バージョン管理されたファイルとフォルダーは無視できません。これはSubversionの機能です。誤ってファイルをバージョン管理した場合は、「バージョン管理を解除」する方法について、「すでにバージョン管理されているファイルを無視する」というセクションをお読みください。

そしてSVNドキュメントから

私のプロジェクトには、すべての開発者が変更しなければならないファイルがありますが、それらのローカルmodをコミットしたくありません。'svn commit'にファイルを無視させるにはどうすればよいですか?

答えは、そのファイルをバージョン管理下に置かないことです。代わりに、「file.tmpl」のように、ファイルのテンプレートをバージョン管理下に置きます。

次に、最初の「svn checkout」の後で、ユーザー(またはビルドシステム)にテンプレートの通常のOSコピーを適切なファイル名で実行させ、ユーザーにコピーをカスタマイズしてもらいます。ファイルはバージョン管理されていないため、コミットされることはありません。また、必要に応じて、ファイルをその親ディレクトリのsvn:ignoreプロパティに追加して、「?」として表示されないようにすることができます。'svnstatus'コマンドで。

これはひどく面倒です...私はそのファイルに注意して、自分の構成のバックアップコピーを作成する必要があると思います(これは無視できます)。

皆さんの回答に感謝します。

于 2008-10-24T13:11:26.993 に答える
3

config.confまたは*.confを除外するローカルフォルダーにsvn-ignore:属性を追加できます。

ただし、このファイルをSVNから完全に除外する必要があると思います。つまり、既にリポジトリにチェックインされている場合は、最初にリポジトリからファイルを削除する必要があります。

于 2008-10-24T13:04:39.067 に答える
3

同じ名前を付けて同じディレクトリに貼り付けると、SVNは常にそのファイルがリポジトリの一部であると見なします。あなたのオプションは

  • 名前を変更します(シェルスクリプトを記述してからmv config.conf config.conf.theirs && mv config.conf.mine config.confアプリを実行します)
  • それを移動。たぶん、ローカルのユーザー固有のディレクトリでconfig.confをチェックし、見つからない場合はデフォルトのconfig.confを使用するロジックをアプリに追加します。
于 2008-10-24T13:07:13.773 に答える
1

ファイルを無視すると、次のようになります。

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-ignore.html

于 2008-10-24T13:05:30.500 に答える
1

構成ファイルを使用してサブバージョニングが行われる場合、トランク全体を専用にすると非常に便利であることがわかりました。なんで?ほとんどの理由は、2 つのローカル リポジトリ コピー (1 つはローカル使用用、もう 1 つはリモート チャンニング用) を持つことができるためです。

このような:

/workdir/configuration [ /workdir/conf_local へのリンクです]
/workdir/conf_local [ローカルの conf を更新したままにしますが、設定を上書きしません]
/workdir/conf_remote [常にリモート データで更新されるため、変更をコミットできます]

于 2008-10-24T13:14:12.993 に答える
1

あなたがどのような設定をしているのか、あるいはあなたがたまたま使用している言語にこれが当てはまるかどうかはわかりませんが、これは私が Web サイトと PHP で行っている方法です。

最初に、デフォルト構成を作成します。これには、90% のセットアップで機能しない単純な値が含まれている可能性がありますが、そこにある値と実際に構成できるものについての参照が得られます。このスクリプトは通常、「config.default.php」または同様の意味で呼ばれます。このスクリプトの最後には、次のような内容があります。

if (file_exists("config.php")) require "config.php";

シンプルなロジック。構成ファイルのユーザーオーバーライドがある場合は、それをロードして、必要なものをオーバーライドさせます。次に、すべての開発マシン、および何らかの理由で svn チェックアウトを保持する本番マシンで既に説明した方法を使用して、このユーザー構成ファイルを無視したままにします。これは非常に柔軟なセットアップであり、ほとんどの言語/環境で同様の手順をセットアップできます。

于 2008-10-24T13:41:31.487 に答える
0

Scrappydogが指摘したように

コミットダイアログボックスで異なるリストを使用/作成できます

コミット時の無視リストをサポートしているため、このリストの下のファイルは表示されません..

詳細については、 このブログ リンクを参照してください。

http://blog.baljeetsingh.net/2009/02/tips-tricks-svn-ignore-on-commit.html

于 2010-01-07T10:52:59.713 に答える