ファイルをどのように移動しますか?


219

SourceForge SVNリポジトリに対してTortoiseSVNを使用しています。変更履歴を維持するために、あるフォルダから別のフォルダにファイルを移動したいのですが。これは可能ですか?もしそうなら、あなたはそれをどのように行いますか?

(私の現在の戦略は、ファイルを新しいフォルダーにコピーしてチェックインしてから、現在のフォルダーからファイルを削除することでした。)

回答:


95

Subversionはファイルの移動をネイティブでサポートしています。

svn move SOURCE DESTINATION

詳細については、オンラインヘルプ(svn help move)を参照してください。


または別の言い方をすると、 svn move <current path/filename> <destination path/filename>
Joe

313

セクション5.14.2を確認してくださいTortoiseSVNヘルプのファイルとフォルダーの移動(またはヘルプのキーワードで「移動」を確認)。右ドラッグで移動します。また、「1」リビジョンにするためには親フォルダーからコミットする必要があることも述べています。これは作業コピーで変更を行うために機能します。

(次の画像のSVNアイテムは、宛先フォルダーがリポジトリーにすでに追加されている場合にのみ表示されることに注意してください。)

亀の移動メニュー

リポジトリブラウザ を介して移動することもできます(ヘルプのセクション5.23。リポジトリブラウザ)。


すべてのファイルを右ドラッグしてハイライトすると、通常のWindowsエクスプローラーメニューが表示されました。「移動」を選択できましたが、SVNオプションではなかったため、何が起こったのかわかりません。変更があったかどうかを確認したところ、300個のファイルが削除され、300個はバージョン管理されていませんでした。これは正しく機能していないようです。これが正常に機能するかどうかを知らずにコミットしてしまうのではないかと恐れています
Joe Phillips

48
新しいディレクトリをまだ追加/コミットしていないため、おそらく機能しないことに気づきました
Joe Phillips

これは数年後のことですが、ジョーのコメントは重要です。私もこれに苦労しました-私は答えのその小さなメモを見落としました。宛先フォルダはSVNの制御下にある必要があります。そうでない場合、これは機能しません。ありがたいことに、SVNでは空のフォルダーを追加できます。フォルダをSVN制御下に置いた後、右マウスドラッグは上記のように動作します。そうでない場合、一般的なWindowsの「ここにコピー/ここに移動/キャンセル」メニューが表示されます(つまり、SVNの選択肢がありません)。
ripvlan 2017年

これは完璧でした。一度に1,500以上のファイルを移動する際に問題が発生しました。ただし、一度に1つのディレクトリを移動すると、この問題は解消されたようです。
マイケルマーフィー

80

TortoiseSVNでは、ファイルをディスクに移動するだけです。

変更をコミットするときは、不足しているファイルと新しいファイルを選択し、右クリックメニューから[ 移動を修復 ]を選択します。

ここに画像の説明を入力してください

これは、IDEにファイルを移動させ、履歴を失うことなくリファクタリングツールを使用できることを意味します。


3
これは、今すぐファイルを移動するための好ましい方法です。1つの警告。コミット間で一度に20ファイル未満しか実行しないと、相互に関連するファイルを見つけるのに非常に時間がかかる可能性があります。
DarrenMB 2013

@DarrenMBは正しい:私はAndroidプロジェクトをEclipseからAndroid Studioに移行しようとしています。すべてのファイルを移動する必要があります。このアプローチは、ここで使用したいものではありません。
Bondax 2016年

@Bondaxはい、プロジェクト全体を移行する場合は、SVN内から移動する方がよいでしょう。これは、たまに行う作業です。私はこれが、プロジェクト中にほとんどの開発者が行うファイル移動の大部分にとってより良い方法であると思いました。
キース

1
亀のSVN 1.9.4を使用して、Repair Moveも持っていません
Mark Patterson

@Mark Patterson:オプションが表示され、1.9.4(TortoiseSVN 1.9.4、ビルド27285、およびSubversion 1.9.4、-release)も使用しています。私はあなたの問題がバージョンに関連しているとは思いません...これはこの機能の公式ドキュメントです:tortoisesvn.net/repairmoves.html
Yosko

37

TortoiseSVNでどこかを右クリックし、TortoiseSVN> Repo Browserに移動してリポジトリを開きます。

その後、ファイルを1つのフォルダから目的の場所にドラッグアンドドロップするだけです。コミットメッセージを追加するように求められ、デフォルトでは「リモートでファイル/フォルダを移動」します。


22

TortoiseSVNを使用して、フォルダーを右クリックし、ある場所から別の場所にドラッグします。右クリックを離すと、「SVN Move Version File」のオプションが表示されます。ただし、私はSVNがそこに「特別な」ことは何もしないと考えています。以前の場所にあるファイルを削除して新しい場所に追加するだけです。


18

TortoiseSVNクライアントの場合:

  1. 移動したいファイルを選択し、
  2. ファイルをクリックして、移動先のフォルダーにドラッグします。
  3. フォルダへのドラッグアンドドロップを解除すると、ウィンドウがポップアップします。クリックして「SVNここにバージョン管理項目(複数可)を移動」
  4. 上記をクリックすると、コミットウィンドウのメッセージボックスが表示されます。メッセージを入力して送信します。

これで完了です。


8

通常どおりにオペレーティングシステムのコンテキストメニューからファイルを切り取り、通常の貼り付けを行う代わりに、右クリックしてコンテキストメニューを表示し、TortoiseSVN -> Paste(ルートにコミットして、古いファイルと新しいファイルの両方をコミットに含めるようにします)。



2

Tortoiseを使用しているので、LosTechiesのこのリンクを確認することをお勧めします。それはあなたが探しているものとほぼ同じであるべきです。

http://www.lostechies.com/blogs/joshua_lockwood/archive/2007/09/12/subversion-tip-of-the-day-moving-files.aspx


3
そのリンクが壊れる可能性があるため、関連情報を回答にコピーすることができます。
Cees Timmerman、2014

3
...そしてそのリンクは壊れています。ポイントとケース。
Stuart.Sklinar

1

バージョン1.5以降、私が間違っていない場合、SVNは移動されたファイル/フォルダーを追跡できます。TortoiseSVNでは、ドラッグ&ドロップでファイルを移動できます。


1

亀によって「名前を変更」と呼ばれることもありますが、svn moveはベアボーンsvnクライアントのコマンドです。


最も単純で最も正確な答えはそれです!TortoiseSVNを使用してファイルを移動するには、右クリックして[名前の変更]を選択します。それでおしまい。
RoeeK、2015年

1

TortoiseSVNを使用してファイルを転送する:

ステップ:1 移動したいファイルを選択し、右クリックして移動先のフォルダーにドラッグします。以下の指示に従ってウィンドウがポップアップします

SVNオプション

ステップ2: 上記をクリックした後、以下のようにファイルをコミットします

SVNコミット


0

リポジトリブラウザを介してフォルダを移動する場合、右クリック時に[移動]オプションはありません。唯一の方法はドラッグアンドドロップすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.