これらの手順は少し威圧的でわかりにくいです。 http://svnbook.red-bean.com/en/1.0/ch04s04.html#svn-ch-4-sect-4. また、「svn rm
」[1]を実行した後、まだチェックインしていない方がはるかに簡単だということも言及していないようです。
だから私は、これをグーグルでやっている人たちにもっと簡単な答えを記録するのに良い場所だと思った。
[1] svn初心者にとって、「svn rm
」はすぐにファイルを破壊するように見えるかもしれません。 svn rm
を実行すると、ソース管理からファイルが削除されるだけで、ファイル自体が実際に消えたときに異常終了することを思い出しました。サブ質問は、実際にローカルコピーを削除せずにバージョン管理からファイルを削除する正しい方法は何ですか?
あなたがちょうどやったら
svn rm foo.txt
その後、単純にそれを元に戻すことができます
svn revert foo.txt
「svn rm
"ログを見ることができます(svn log
)、ファイルが存在した最後のリビジョンを見つけ、そのバージョンからそれを取得します。
そのための1つの方法は、ファイルがある古いリビジョンにマージすることです。現在のリビジョンが123で、そのファイルの最後のバージョンが120であると仮定して、次を実行します。
svn merge -r123:120
たぶん最初にドライランをして、あなたが望まないことを何もしないことを確認してください:
svn --dry-run merge -r123:120
サブ質問の場合、ローカルコピーを削除せずにsvnからファイルを削除する方法:
svn rm foo.txt --keep-local
または、もちろん、svn rm'ingする前に一時ファイルにコピーしてからコピーして戻すこともできます:
cp foo.txt foo.txt-tmp
svn rm foo.txt
(svn ci -m "just removed foo.txt from the repository")
cp foo.txt-tmp foo.txt
何らかの理由で、-r
argが機能していませんでした(svnバージョン1.6.9)。 src
の前後に試しましたが、ファイルが現在のリビジョン(duh)で見つからなかったというメッセージを受け取り続けました。 --revisionと同じです。ただし、@スタイルの構文を使用するとうまくいきました。
svn cp url/to/removed/foo.txt@4 foo.txt
ファイルを削除して作業コピーに保存するには、次を使用します
svn rm foo.txt --keep-local
削除をコミットした後にファイルを取り戻すには、mergeコマンドまたはcopyコマンドのいずれかを使用できます。両方ともファイル履歴を保持します。マージ方法は他の場所ですでに説明されているため、コピー方法は次のとおりです。
svn rm foo.txt
svn ci foo.txt -m "removed file"
(now at r5 as an example)
svn cp url/to/removed/foo.txt -r4 foo.txt
svn ci foo.txt -m "got file back"
SVNで削除されたファイルを元に戻すには。削除の直前にリビジョン番号を見つけます(たとえば341)。次に、そのファイルのみをそのリビジョン番号に戻します。
svn up -r341 [path_to_deletedFile]
私はカメを使用して前のリビジョンからコピーメニュー項目を使用し、私のために働いて、歴史を保持しました。