2011-08-03 18 views
2

これは基本的に私がやりたいことです:特定のバージョンのコードをチェックアウトしたいが、そのバージョンが利用できない場合は最新のものをチェックアウトする。どういうわけか私はこれを行う方法も理解できません。私が試したいくつかのアプローチ:svnチェックアウトは1回のチェックアウトで異なるバージョンですか?

  1. svn co <url> -r HEAD:75
    は動作しません。これは基本的に私はそれが特定のバージョンをチェックアウトしたい75

のバージョンを持っていない元のファイルを一掃チェックアウト

のリビジョン範囲を使用することはできません
  • svn co <url>
    svn co <url> -r 75
    ようで、そのバージョンが存在しないファイルの最新のものを入手するか、少なくとも既存のものを削除しないでください。

    他の方法はありますか?

    すべてのヘルプを評価してください! SVNの強みの

  • +0

    私はそれが可能ではないと思います。あなたが似たようなことをすることができるという事実は、私がまだCVSから見逃している特徴です。 –

    答えて

    0

    一つは、それがアトミックと見なされるので、どちらかそれはすべてが起こるかどれもそれのが起こらないということです。物事の「並べ替え」が機能する中間ステップはありません。

    さらに重要なのは、SVNのバージョン番号がファイルレベルではなくリポジトリ全体に基づいているため、すべてのファイルの最新版が必要な場合は、ただ頭を上げることができます。定義上、それはすべての最新のものになります。

    一部のファイル/機能が半分になり、デプロイメントが壊れる可能性がある場合は、ブランチングすることで簡単に作業できます。マージする準備が整うまで、新しいブランチを作成して実験的な開発をしてください。これはGitと同じくらい簡単ではありませんが、実際には99%も悪くありません。

    +0

    私のプロジェクトは多くのサブプロジェクトと共通のコードディレクトリで構成されています。サブプロジェクトは共通コードに依存します。しかし、チェックインは共通のコードとサブプロジェクトで独立して処理されます。今私が望むのは、サブプロジェクトproj1のバージョン75、共通コードのバージョン75がないので、共通のコードから75のproj1とHEADを得ることができるチェックアウトです。基本的に、SVNがファイルに対してver 75を見つけたら、それをチェックし、そうでなければHEADをチェックアウトします。 – Rahul

    0

    ファイルのコピーを取得するだけでSVNの作業ディレクトリにないのであれば、svn exportコマンドを使用して、2つの異なるバージョンを互いに重複しないように抽出することができますディレクトリ:

    svn export -r HEAD 
    svn export -r 75 
    

    r75のコピーは、すでに存在していたファイルのHEADリビジョンのものを上書きする必要があります。免責事項:私はこれをテストしませんでした。

    +0

    これは1つのグループの問題を解決しますが、すべての問題は解決しません。私はまだ何らかの理由でこれをSVN作業ディレクトリで動作させるための解決策(可能であれば)を見つけたいと思っています。 – Rahul

    関連する問題