10

バージョン管理されていないファイルをSubversionに追加することは可能ですか?F.ex. 個々の環境に一致するように編集する必要がある構成ファイル。新しいプログラマーがプロジェクトに接続すると、Subversionから元のファイルを取得する必要がありますが、編集後にコミットされず、更新時に上書きされません。

たぶん、元のプロジェクト全体のタグを作成することが解決策ですか?最初にタグをダウンロードしてからトランクから更新しますか?

何か案は?


以下のコメントの明確化:プロジェクト(Sitecore)は、約30kの異なるファイルで構成されています。これらのうち約100個をバージョン管理する必要があります。バージョニングにすべてのファイルを含める必要がある場合、各コミットには永久に時間がかかります(亀がすべてのフォルダーを検索するため)。今日は、バージョン管理されていないすべてのフォルダーを含むzipファイルを作成し、フォルダーをsvnで無視するように設定してから、代わりにzipを追加します。問題は、zip内の1つ以上のファイルを変更する必要がある場合、新しい〜1GB-zipをリポジトリにコミットする必要がある場合です。

4

6 に答える 6

14

プロジェクトを使用するすべての人がアクセスできるWebまたはファイルサーバーにバージョン管理されていないファイルを配置し、ファイルを自動的に(wget/ scp/ etc。)ダウンロードして(必要に応じてzip形式で)、svnignoredフォルダーに抽出するスクリプトを追加します。転覆に巻き込まれないでください。

これらのファイルの変更が心配な場合は、バージョン管理する必要がありますか?

svn:externalsは、この状況でも役立つ場合があります。状況が許せば簡単に無視できるように設定できると思います。

于 2009-02-23T10:41:48.850 に答える
5

場合によっては、開発者ごとにweb.configを作成する必要がないこともあります。これは、.Net構成形式では、configSource属性を介して構成ファイルの特定のセクションをオーバーライドできるためです。

configSource属性は、(ファイルが存在する場合は)指定されたブロックをオーバーライドし、存在しない場合はブロックがそのまま使用されるファイル名を指定します。

<?xml version="1.0"?>
<configuration>
  <connectionStrings configSource="connections.config">
      <add name="LocalSqlServer" 
           connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
           providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

開発者システムでは、connections.configを追加するだけで、残りの設定を共有できます。

(したがって、これはテンプレートの問題を解決しませんが、大きなテンプレートを小さなものと同じくらい多く管理するのに役立ちます)

于 2009-02-23T11:35:26.693 に答える
4

実行時に構成ファイルを生成するスクリプトを作成します。このように、SCMが邪魔になることを心配する必要はありません。

于 2009-02-23T10:38:20.433 に答える
3

subverion の使用方法を再考する必要があります。Subversion はファイルに関するバージョン情報を保存します。それ以上でもそれ以下でもありません。バージョン管理されていないファイルを Subversion に保存することはできません。意味がありません。1GB の zip を subversion に保存しても、何の役にも立ちません。

開発者が、ユーザーのホーム ディレクトリまたは環境変数にある個人用の構成ファイルを介して、このファイルの設定をオーバーライドできる方法を検討する必要があります。

于 2009-02-23T12:55:12.150 に答える
2

これにはテンプレートファイルを使用するだけです。ファイルの名前がconfig.txtであるとします。ファイルを見て、ローカル設定を配置する場所にいくつかのマーカーを挿入し、名前をconfigTemplate.txtに変更して、コミットします。次に、各開発者はファイルをチェックアウトしてコピーを作成し、ファイル名のテンプレート部分を削除して(全員が正しいconfig.txtを取得できるように)、新しいファイルを無視リストに追加する必要があります。次に、マーカーがテンプレートファイルにあるローカル設定で全員が手動で編集できるようにするか、スクリプトを使用して編集します(可能な場合)。

テンプレートファイルが変更されることはありません(もちろん、構成ファイルの形式に違いがない限り)。

あなたの編集(およびコメント)への返信:

自動的に生成されない画像、ドキュメント、バイナリファイルは、おそらくすべてバージョン管理下に置く必要があります。または、少なくとも、バージョン管理を行わないようにする正当な理由はありません。

于 2009-02-23T10:39:27.687 に答える
0

すべてのプログラマーが自分のブランチで作業できるようにし、変更をメイン ブランチ/トランクにマージして戻します。もちろん、チーム メンバーはバージョン管理を使用して最新の状態に保つ必要があり、チェックアウト、更新、およびコミット以上の機能を使用できる必要があります。

于 2009-02-23T21:32:46.197 に答える