2

Ubuntu 12.04にsvnリポジトリをインストールしましたが、MacクライアントとWindowsクライアントの両方からsvnを使用する必要があります。このガイドに従って、カスタムsvn://プロトコルを使用してsvnを実行すると、リポジトリを正常にチェックアウトできます。サーバーはチェックアウト時に認証を要求しません???

Macクライアントで-コマンドライン-私はコミットします、それは言うことになっています

$ svn commit -m "edit 3 svn test"
Sending        a
Transmitting file data .
Committed revision 3.

しかし、これが実際に起こることです。

$ svn commit -m "added howto section."

何もない。svnログは更新を示していません。

svn statusを尋ねると、ローカルの作業コピーにコピーしたすべてのディレクトリの完全なリストが表示され、更新する必要がありますが、これらのディレクトリ内のファイルはありません。

$ svn status
?       app/Plugin/Metrics/Test
?       app/Plugin/Metrics/Model
?       app/Plugin/Metrics/Console
?       app/Plugin/Metrics/Controller
?       app/Plugin/Metrics/Config
?       app/Plugin/Metrics/Lib
?       app/Plugin/Metrics/View

'?' これらのリストされたすべてのディレクトリがバージョン管理されていないことを示します。ただし、変更されたファイルは表示されません。明確にするために、上記のこれらのディレクトリのほとんどには、リポジトリに追加またはコミットしたい新しいファイルが含まれています。これらのファイルはリストされておらず、ディレクトリのみがリストされています。

これらのディレクトリの1つを「svnadd」しようとすると、具体的には次のようになります。

$ svn add app/Plugin/Metrics/Model
svn: warning: 'app/Plugin/Metrics/Model' is already under version control

ローカル作業コピーのこれらのディレクトリの1つにコピーしたファイルを手動で「svnadd」しようとすると、次のようになります。

svn add app/Plugin/Metrics/Controller/MetricsMetricsController.php 
svn: warning: 'app/Plugin/Metrics/Controller/MetricsMetricsController.php' is already under version control

この同じファイルを手動でコミットしようとすると、

 svn ci app/Plugin/Metrics/Controller/MetricsMetricsController.php 

何もない。クライアントのsvnからのフィードバックはありません。フォアグラウンドのubuntuボックスでsvnserveを実行して、デバッグ情報が表示されるかどうかを確認していますが、何も表示されません。

svnserve -d --foreground -r /galaxypool/svn

本当にイライラする問題。SVNをコミットさせる方法について何かアイデアはありますか?

4

2 に答える 2

1

最終的に次のことを行いました。-新しいディレクトリツリーをローカルの作業コピーからデスクトップに移動しました。- 発行済み:

svn delete app/Plugin/Metrics
D         app/Plugin/Metrics

そしてコミットします-これにより、破損したMetricsフォルダーがリポジトリから削除されました。

svn commit -m "delete metrics"
Deleting       app/Plugin/Metrics

Committed revision 16.

次に、ディレクトリツリーに移動し、非表示の「.svn」フォルダをすべて削除して、ツリーをローカルのワーキングセットにコピーして戻しました。svnステータスは言った

svn status
?       wezwa
?       app/Plugin/Metrics

次に、svnaddを使用してツリーを再度追加しました。

svn add app/Plugin/Metrics/
A         app/Plugin/Metrics
A         app/Plugin/Metrics/Config
A         app/Plugin/Metrics/Config/bootstrap.php
A         app/Plugin/Metrics/Config/cache.php ...etc

そしてコミット:

svn commit -m "upload metrics"
Adding         app/Plugin/Metrics
Adding         app/Plugin/Metrics/Config
Adding         app/Plugin/Metrics/Config/Schema
...etc

Windowsシステムからテストし、動作しました。ファイルはリポジトリ内で安全です。

于 2013-02-18T16:18:50.627 に答える
0

まず、バージョン管理用に新しいファイルを追加する必要があります。例えば:

svn add app/Plugin/Metrics/Test

その後、コミットすると、これらのファイルはバージョン管理下に置かれます。

ただし、別のクライアントで作業する前に、そこで作業コピーを更新する必要があります。

svn update

これにより、リポジトリの実際のステータスがわかります。ファイルがすでにローカルに存在する場合は、競合が発生します。あなたはどうにかしてそれらの対立を解決しなければならないでしょう。

編集:.svnディレクトリを手動で移動したために作業コピーが壊れているようです。すべてをもう一度やり直してください。リポジトリのクリーンで新鮮な新しい作業コピーから始めます。新しい作業コピーに含めるディレクトリのエクスポート(チェックアウトではない)を実行し、それらをコピーします。

これは最善の方法ではないことを忘れないでください。外部を使用して別のリポジトリに関連付けることができます。または、そこで何かを変更する必要がある場合は、「ベンダーブランチ」(ここで説明されているように:http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr)を使用します。 html

于 2013-02-18T12:08:18.330 に答える