2012-03-30 7 views
1

CVS、SVN、GitなどのVCSをすでに使用しています。私が欠けている1つの機能はどこにも見つかりません。ユーザーごとにバージョン管理されたVCS対応ファイル

リポジトリに保存したいファイルがありますが、すべてのユーザーが独自のファイルを持っている必要があります。だからあなたがチェックアウトすると、そのファイルのデフォルトを取得し、それはあなた自身のためだけにあなたの変更をコミットします。

なぜこれをしたいですか?リポジトリにデフォルトのバージョン(ビルドリリースや新しいチームメンバーの開始ベースなど)があるような設定のようなファイルがいくつかありますが、そのファイルに対する変更は特定の開発者(または作業コピー)にのみ関連しています。その開発者/作業コピーに対してのみ有効なパスが含まれるためです。現在

私はこのファイルを追加しないでください: - 新しい作業コピーを作成したり、リリースビルド のためにエクスポートするときに私はそれらを欠場 - 私は現在

を試すために自分のために行っている可能性のある変更既往がありませんこのファイルをリポジトリに追加すると: - リポジトリにデフォルトがあるので、私は決してコミットしないかもしれませんが、私のファイルは常に "変更されました"と表示されます。 SVNでは、ビットを改善するために、 "ignore-on-commit"チェンジリストに追加することができます。 - 難しい設定ファイル(データクラッシュ、ノートパソコンの盗難など)の独自の変更が緩んでいる可能性があります。

これに対応するVCSはありますか? SNVかgitは私が監督しているかもしれないこのことに関する何かをサポートしていますか?

+0

SVN - ユーザーごとのブランチ+ Pristine Branch。 * Sapienti sat!* –

+0

これは、トランクとの同期が多く、手動で解決しなければならない競合が増えることを意味します。 – ZoolWay

+0

いいえ、マージはありません(サイクルの途中で "テンプレート"がオンザフライで変更されていない限り)。 2回目に試してみてください... –

答えて

1

私は理解して分解した場合、あなたのタスクが正しく

は、「ユーザごとのカスタマイズのポイントを開始され、これらのカスタマイズされたバージョンが別々に保存し、アクセスできるようにしなければならない何かのデフォルトテンプレートのセットを持っています唯一のあなたは(変更や修正の対象ドラフト、)このワークフローを使用することができます

責任者」によって、Subversionのシンプルさと透明性の高い経営(本当にすべてのCVCSの強いポイント)

のために基づいて、 0
  • レポの各ユーザーが
  • 一つの特別な管理者専用の管理パスもアクセスできない、存在し (管理のための共通パス・パターンとプロセスを簡単に自動化して)リポジトリ・ツリー内の自身の所定の経路を持って
  • Subversionリポジトリ一般ユーザで

私たちの木が

z:\>dir /s /B 
z:\Repository 
z:\Repository\Users 
z:\Repository\Template 
z:\Repository\Users\Alpha 
z:\Repository\Users\Bravo 
    このように思える(リポジトリディレクトリがリポジトリのルートです)も(名前は想定していたように)、我々はリポジトリにのみ自身のサブツリーにすべてのユーザごとにアクセスを提供するパスベースの認証を使用するすべてのユーザー・パスの場合は、
  • テンプレートが含まれている
  • は、新たに追加
  • すべてのユーザーのドキュメント用のスタブをテンプレートレポするユーザーが、明らかに、シンプルかつ簡単に自動化されたタスクになります。新しいユーザーのディレクトリに
    • svn copyテンプレート
    • ユーザーのために作成された場所のためのrw権限を追加するのauthz-ファイルに
    • レポの彼の個人的な木のTELLユーザーURL
+0

あなたはリポジトリをチェックアウトし、アクセス権を持っているユーザーフォルダのみを取得しますか? – ZoolWay

1

ここではVCSが問題ではないと思います。内容がローカル環境に依存するファイルを持っている場合は、スクリプトで自動生成する必要があります。こうすることで、生成されたファイルは無視されますが、スクリプトのバージョンと各開発者は実行時に完全に有効な設定ファイルのコピーを取得します。これは、ユーザー固有のIDE設定などで使用されるのと同じアプローチです。例えば、Visual Studio上の.suoファイルです。

更新:

あなたは、特にデフォルトのセットが必要な場合は、その解決策は、これは次のとおりです。

  1. は、リポジトリにデフォルト値を追加します。
  2. 各開発者は、それぞれのブランチで動作します。こうすることで、設定ファイルの変更を のバージョンにすることができます。
  3. マスターやマージに再基づいている場合、開発者は単に決して のカスタマイズされた設定をマージすることはありません。
  4. デフォルトの設定が変更されているかどうかを確認するためにフックを設定することができます。もしそうなら、おそらくdevにメールしてください。このようなコミットは、コンパイルされていないコミットを表示するのと同じように表示されます。

Devsはスマートです。確かに、彼らは間違いを犯す。しかし、単純なコミュニケーションの力を過小評価することはありません。

もちろん、デフォルトのconfigsがDev Xのカスタマイズされたconfigsで上書きされるときは、gitのパワーを使ってすぐにそのコミットを修正します。

+0

これはパスへの良いアプローチですが、現在変更しているアプリケーションのどの部分に依存しているかは他の設定ではありません。 – ZoolWay

+0

あなたの質問から、 "...その開発者/作業コピーでのみ有効なパスが含まれているためです。"あなたはパスだけを言います。質問を更新して(たとえば、現在変更されているアプリケーションの部分を判断するためにどのような方法を使用するかなど)少し説明すると、私は自分の答えを微調整できます。 – Carl

+0

構成には、開発者マシンごとに異なるリソースへのパスが含まれています。また、開発者が選択したマスターデータとアプリケーションワークフローの設定が異なるDBにつながるDB構成もあります。 – ZoolWay

関連する問題