5

TortoiseSVN を使用してプロジェクトの 2 つのブランチをマージした後、変更をコミットする際に問題が発生しました。

詳細は次のとおりです。

私が取り組んでいるプロジェクトのトランクにブランチをマージしました。

プロジェクトには、プロジェクトのサブディレクトリとしてsvn external (ライブラリも分岐) として、メイン リポジトリとメイン リポジトリに結合されたライブラリが含まれます。

変更をコミットしようとしたとき、TortoiseSVN は次のように言いました。

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.

もちろん、クリーンアップは役に立ちませんでした。

プロジェクトディレクトリのsvn:externalキーワードは明確に定義されており、 libフォルダにも適切なバージョンのライブラリ (トランク バージョン) が含まれていました。

SVN サーバーとクライアントの両方が 1.5.x バージョンです (TortoiseSVN は 1.5.3.x)。

技術的な観点からは、プロジェクトライブラリの両方が同じ SVN リポジトリ内のプロジェクトです。

何がうまくいかなかったのですか?

私は解決策を少しグーグルで調べていましたが、何も役に立たなかったので、2 つのステップで変更をコミットしようとしました。

  1. プロジェクト フォルダーからの変更をコミットする
  2. ライブラリ フォルダーからの変更をコミットする

これは問題なく進みました。

しかし、なぜ1回のコミットですべてをコミットできなかったのか、まだ疑問に思っています。

編集:

  • (Ken G の回答後) TortoiseSVN 1.3.x -> 1.5.3.x のバージョンを修正しました。
4

3 に答える 3

2

TortoiseSVNの1.3は非常に古く、最新のリビジョンは1.5.xです。1.3以降、SubversionとTortoiseSVNの両方で多数の変更が行われているため、クライアントをアップグレードすることがおそらく最善の策です。

そうは言っても、1.5 TortoiseSVNは、作業コピーを作成/更新してバージョン1.5形式にします。以前のSubversionの作業コピーに対してTortoiseSVN(または任意のSVNクライアント)を使用する場合は、十分に注意してください。

于 2008-10-21T21:25:17.900 に答える
1

svn:externalにより、Subversion はチェックアウト時に異なるリポジトリ パスを結合しますが、最終的にそれらのパスは依然として「バラバラ」であるため、変更を適用するには 2 つのコミットを行う必要があります。

Subversionを使用したバージョン管理からの関連する引用は次のとおりです

そして、Subversion は依然として非ばらばらな作業コピーでしか動作しません。したがって、たとえば、これらの外部作業コピーの 1 つまたは複数で行った変更をコミットしたい場合は、それらの作業コピーに対して明示的に svn commit を実行する必要があります — プライマリ作業コピーでコミットしても、外部作業コピーに再帰することはありません。 .

于 2008-10-22T15:17:41.730 に答える
1

最新のリリースで修正された TortoiseSVN のこれに関連するバグについて読んだことを覚えていると思います。最新のリリース ノートを確認してください。

于 2008-10-21T20:27:38.843 に答える