2

I am experimenting with VirtualSVN Server, TortoiseSVN and AnkhSVN, and everything is still quite new to me.

I have added a Visual Studio 2010 (VB) solution to SVN. After this was done trunk contained version 1.0.0, I had a tag containing version 1.0.0, and a branch containing version 1.0.0-dev. I started to work on 1.0.0-dev (from the branch) and when version 1.1.0 was ready, I created a tag version 1.1.0, and a new branch 1.1.0-dev.

Then I wanted to merge this latest version (branch 1.1.0-dev) to the trunk, but run into a huge list of merge (tree?) conflicts. Most of them because of dll-files, executables and other binary files. It seemed a good idea to ignore these files, so I did from Windows explorer, right clicking each type of file, selecting from the context menu "TortoiseSVN - Unversion and add to ignore list - *.dll" (after that also *.exe and some other files).

Now I'm left with a solution directory tree with lots of yellow exclamation marks as well as deleted marks.

My questions are:

  1. How do I update the trunk so it contains the latest version?
  2. How do I ignore dll's that are being created by Visual Studio when building the solution anyway?
  3. There is one third party dll that is not build and should be included in the repository, but the file is likely to stay the same, how should I handle that?
4

1 に答える 1

3

まず、削除されたマークを削除するには、最初に変更をコミットする必要があります(この場合は削除です)。詳細については、SVN Book を参照してください。

第二に、あまり良くないと思う競合を解決する前に、バイナリファイルのバージョン管理を解除したようです...私は次のようにしました:

  • トランクと dev ブランチの両方にバイナリ ファイルが存在し、変更をマージする
  • これらのバイナリで競合が発生します
  • 競合を解決します (ブランチまたはトランクのバージョンのいずれかを使用)
  • 次に、それらのバイナリをリポジトリから削除します (必要に応じて無視リストに追加します)。
  • svn commitあなたの削除を忘れないでください

最後の 3 つの質問に答えるには:

1-最新バージョンが含まれるようにトランクを更新するにはどうすればよいですか?

次のようなコマンドを使用して、開発ブランチをトランクにマージする必要があります (トランクの作業コピーがあり、ブランチがリビジョン 25 で作成されていると仮定します)。

svn merge -r 25:HEAD http://your/repos/branches/my-branch

2-とにかくソリューションをビルドするときに、Visual Studio によって作成されている dll を無視するにはどうすればよいですか?

これらのファイルを最初に追加するべきではありません。いずれにせよ、それらを SVN リポジトリから削除すると、次のビルド時に再度作成されます。これに関する詳細については、この質問を参照してください。

3-ビルドされていないサードパーティの dll が 1 つあり、リポジトリに含める必要がありますが、ファイルは同じままである可​​能性があります。どのように処理すればよいですか?

他の種類のファイルと同様に、バイナリ ファイルをリポジトリに追加できます。SVN がファイルがバイナリであることを適切に検出しない場合は、ここでsvn propset説明されているコマンドを使用して強制的に実行できます。

于 2012-10-04T08:01:28.977 に答える