回答:
簡単な答えはsvn export
、ファイルをチェックアウトするのではなく、ファイルにすることです。
しかし、それはあなたが望むものではないかもしれません。不要なGBのジャンクをダウンロードせずに、ファイルを操作してチェックインすることができます。
Subversion 1.5以降を使用している場合は、疎チェックアウトを実行します。
svn checkout <url_of_big_dir> <target> --depth empty
cd <target>
svn up <file_you_want>
古いバージョンのSVNの場合、次のようなメリットがあります。
代わりの方法(たとえば、ディレクトリが作成されたリビジョンからのジャンク権が多すぎる場合)は、リポジトリの新しい場所に目的のファイルのURL-> URLコピーを実行することです(これは実際には作業ブランチです)ファイルの)。そのディレクトリをチェックアウトして、変更を加えます。
ターゲットの作業コピーなしに、変更したコピーを完全にリポジトリにマージできるかどうかはわかりません。もしそうならそれを行います。
そうでない場合は、残念ながら、ディレクトリ全体をチェックアウトしている人を見つけて、それを実行してもらう必要があります。または、変更を加えた時点で、残りの部分のダウンロードが完了している...
svn export
、必要なファイルがわかっていれば、Webインターフェイスを使用するよりも使用する方が簡単です。質問者はすでにSVNを使用しているので、どのクライアントを使用するか、およびそのクライアントが使いやすくするかどうかによって異なりますsvn export
。でもsvn ls
、ブラウジングにはウェブインターフェースの方が優れていると思いますが、:-)
のsvn export
代わりに試してくださいsvn checkout
。これは単一のファイルで機能します。
制限の理由は、checkout
リポジトリ、リビジョン、属性などに関するメタ情報を含む作業用コピーを作成するためです。そのメタデータは「.svn」という名前のサブディレクトリに保存されます。また、単一のファイルにはサブディレクトリがありません。
svn
は、単一ファイルのエクスポートはできません。
svn cat $url_to_file_in_repo > $local_file_name
。
svn cat
またはを使用しsvn export
ます。
そのため、作業ディレクトリをフェッチする必要はありませんが、加えた変更をコミットすることはできません。変更を加えてコミットする必要がある場合は、作業ディレクトリが必要ですが、完全にフェッチする必要はありません。ディレクトリがまだ/ほとんど空のリビジョンをチェックアウトし、 'svn cat'を使用してHEADからファイルを抽出します。
svn cat svn://.../my_file.txt
まさに私が探していたものでした。私はsvn://
唯一の(いいえhttp://
)リポジトリで作業しており、最新のwebsvnインターフェースでは生ファイルのダウンロードが提供されていないようです(または、構成が間違っているか、盲目です)。この方法は、ファイルをダウンロードするだけのcheckout
+ より簡単up
です。
チェックアウトせずにリポジトリのreadme.txtを表示したい場合:
$ svn cat http://svn.red-bean.com/repos/test/readme.txt
これはREADMEファイルです。これを読んでください。ヒント:作業コピーが古い(またはローカルで変更されている)場合、作業コピー内のファイルのHEADリビジョンを表示するには、パスを指定すると、svn catが自動的にHEADリビジョンをフェッチします。
$ cat foo.c
このファイルは私のローカル作業コピーにあり、私が加えた変更があります。$ svn cat foo.c
リポジトリからの最新の最新リビジョン!
curl
やwget
。
受け入れられた回答のTortoiseSVNと同等のソリューション(私は新しくSVNを採用しているので、これを社内の文書に書きました)は次のとおりです。ここでも共有すると便利だと思いました。
単一ファイルのチェックアウト:Subversionは単一ファイルのチェックアウトをサポートしていません。ディレクトリ構造のチェックアウトのみをサポートしています。(参照:http : //subversion.tigris.org/faq.html#single-file-checkout)。これは、作業コピーとしてチェックアウトされるすべてのディレクトリで、変更/ファイルリビジョンに関するメタデータが内部の隠しフォルダー(.svn / _svn)として保存されるためです。これは現在(v1.6)単一ファイルではサポートされていません。
代替の推奨戦略:チェックアウトディレクトリの部分を一度だけ実行する必要があります。その後、単一のファイルに直接アクセスしてチェックアウトできます。親フォルダーとディレクトリ構造の疎チェックアウトを実行します。スパースチェックアウトとは、基本的にはコンテンツファイルを生成せずにフォルダー構造のみをチェックアウトすることです。したがって、ディレクトリ構造のみをチェックアウトし、懸念事項であったすべてのファイルをチェックアウトする必要はありません。リファレンス:http : //tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-checkout.html
ステップ1:リポジトリブラウザーに進む
ステップ2:作業するすべてのファイルを含むリポジトリ内の親フォルダを右クリックし、[チェックアウト]を選択します。
手順3:新しいポップアップウィンドウで、チェックアウトディレクトリがローカルPCの正しい場所を指していることを確認します。「チェックアウトの深さ」というラベルの付いたドロップダウンメニューもあります。必要に応じて、「このアイテムのみ」または「フォルダを含む即時の子」を選択します。2番目のオプションは、ネストされたフォルダーで作業したい場合は、次に直接進むことができます。そうでない場合は、ネストされたフォルダーに対してこの手順全体を再度実行する必要があります。
ステップ4:親フォルダーがローカルで選択されたフォルダー内で使用可能になり、SVNで監視されます(隠しフォルダー「.svn」または「_svn」が表示されます)。リポジトリ内で、単独でチェックアウトする単一のファイルを右クリックし、[アイテムをリビジョンに更新]オプションを選択します。これで、単一のファイルを処理してリポジトリにチェックインできます。
これがお役に立てば幸いです。
次の2つの手順で実行できます。
メタ情報のみを含む空のSVNリポジトリをチェックアウトします。
$ cd /tmp
$ svn co --depth empty http://svn.your.company.ca/training/trunk/sql
svn up
指定したファイルを更新するために実行します。
$ svn up http://svn.your.company.ca/training/trunk/sql/showSID.sql
別のフォルダのチェックアウトにファイルを含めることで、本当に必要な場合の更新に対応できます。
SVN 1.6以降、ファイルを外部にできる、一種のsvnリンク。つまり、1つのファイルを含むバージョン付きの別のフォルダーを作成できます。このフォルダのチェックアウトでファイルへの変更をコミットすることも可能です。
非常に簡単です。ファイルを含めるフォルダーをチェックアウトし、フォルダーにプロパティを追加するだけです。
svn propedit svn:externals .
このような内容で:
file.txt /repos/path/to/file.txt
これをコミットした後、ファイルはフォルダーの今後のチェックアウトに表示されます。基本的には機能しますが、上記のリンク先のドキュメントで説明されているように、いくつかの制限があります。
repo-browserに移動してファイルを右クリックし、[名前を付けて保存]を使用します。ただし、TortoiseSVNを使用しています。
スティーブ・ジェソップの答えは私にはうまくいきませんでした。私はSVNのヘルプファイルを読みましたが、Photoshopを実行しているのでない限り、画像だけをもう一度チェックインしたくないので、バージョン管理されていないため、エクスポートはチェックアウトよりも優れたコマンドです(ただし、マイナーです)。
そして、--depth ARGはすべきではない、空が、ファイルが即時のディレクトリ内のファイルを取得します。したがって、フィールドだけでなくすべてのフィールドを取得しますが、空の場合はリポジトリから何も返されません。
svn co --depth files <source> <local dest>
または
svn export --depth files <source> <local dest>
他の答えについては、猫はあなたがすべてのもののイメージではなく、テキストだけに役立つコンテンツを読むことを可能にします。
--depth empty
、他のファイルはチェックアウトされるべきではないということでした。そうすれば、で単一のファイルを取得できますsvn up <source/file>
。ではsvn export
、これを行う必要はなく、ファイルを指定するだけです。
スパースチェックアウトテクニックを使用すると、既にチェックアウトされているか存在する特定のファイルを簡単なトリックでチェックアウトできます。
「このアイテムのみ」オプションを使用してリポジトリの最上位をチェックアウトした後、Windowsエクスプローラーで、まず更新する必要のあるファイルを右クリックする必要があります。コンテキストメニューで[リポジトリブラウザ]を選択します。リポジトリブラウザでそのファイルをもう一度見つけ、右クリックします。コンテキストメニューに[アイテムをリビジョンに更新]が表示されます。
それが文書化されていない機能なのか、それとも単なるバグなのかはわかりません。ようやくこのトリックを見つけるのに、仕事帰りの長い時間がかかりました。TortoiseSVN 1.6.2 を使用しています。
作業コピーの一部ではないディレクトリに単一のファイルをチェックアウトしたかったのです。
次のURLでファイルを取得してみましょう:http://subversion.repository.server/repository/module/directory/myfile
svn co http://subversion.repository.server/repository/module/directory/myfile /**directoryb**
それで、ダミーディレクトリに移動したいターゲットファイルを含む指定されたディレクトリをチェックアウトしました(たとえばで終わるURLについてはetcbと言います/etc
)。
次に、不要なターゲットディレクトリのすべてのファイルから.svn / entriesファイルを空にして、必要なファイルだけを残しました。この.svn / entriesファイルには、属性を持つ各ファイルのレコードがあるので、取得して保存するファイルに関するレコードだけを残します。
次に、「。svn」を新しい「作業コピー」となるディレクトリにコピーするだけです。それからあなたはただする必要があります:
cp .svn /directory
cd /directory
svn update myfile
これで、ディレクトリdirectoryはバージョン管理されます。単なる ''一時的な作業コピー ''であったディレクトリdirectorybを削除することを忘れないでください。
他の答えはどれもうまくいかなかったので、このハックを使用してそれを行いました:
$ cd /yourfolder
svn co https://path-to-folder-which-has-your-files/ --depth files
これにより、リモートパスからのファイルのみを含む新しいローカルフォルダが作成されます。次に、ここに置きたいファイルへのシンボリックリンクを作成できます。
svn co
、ディレクトリ全体がイメージファイルでいっぱいにならないように、1つのファイルについて質問しました。また、シンボリックリンクを追加しても複雑さが増すだけで、一時ディレクトリからの移動は機能しますが、画像のディレクトリ全体を1つの画像でチェックアウトする必要があります。@ steve-jessopは正しい考えを持っていました
この問題は以下によってカバーされます:
http://subversion.tigris.org/issues/show_bug.cgi?id=823
svnから1つのファイルをチェックアウトし、変更を加えて、変更をリポジトリにコミットできるスクリプトが添付されていますが、「svn up」を実行して残りのディレクトリをチェックアウトすることはできません。svn-1.3、1.4、1.6でテストされています。
svn up
コンピューターのローカルディレクトリにログインします。