と等しくなったのですかsvnのBASEバージョンに関する質問がありました。私はそれが最後のアップデートが実行され、svn diffとステータスが基本的にこのバージョンに対して実行されたときのアイテムの元々のバージョンであることを知っています。 BASEはいつ更新されますか?更新プログラムの実行時にHEADに更新されますか?更新中に競合があったとしても、これは常に正しいですか? BASEは何の矛盾を起こしていますか?競合が発生した最新のアップデートより前のバージョンのアップデートはまだありますか?または競合があってもHEADにアップデートされますか?
また、svn commitを実行すると、BASEが私のローカル変更で更新され、この時点でBASE、HEAD、およびローカルコピーがすべて同じであると仮定していますか?コミットが成功した場合。いつsvn BASEがHEAD
答えて
HEADは、リポジトリの最新のリビジョンです。 BASEはリポジトリから取得した最後のリビジョンです。コミットまたは更新が成功した後も同じです。
変更すると、ファイルはBASEコピーとは異なります。元に戻すと、BASEリビジョンとの一致に戻ります。競合すると、リポジトリを更新しません。むしろ、変更を行っているかのように、ファイルは「編集中」とみなされます。競合を解消した後は、最終的なファイルの外観を決定し、通常どおりにコミットします。したがって、コンフリクトは特殊な編集のようなものです。
BASEは、リポジトリに存在する作業コピーのリビジョンです。言い換えれば、変更を加えることなくあなたのリビジョン。あなたがsvn update
のファイルやフォルダをHEADに設定した場合、BASEとHEADは等しくなります。
競合が発生した場合、BASEは作業コピーと競合するコミット前のリビジョンになります。
アイテムにsvn info
を実行すると、ベースリビジョンが表示されます。
理論:成功した再帰的な更新またはスイッチが成功すると、すべてのファイルのベースバージョンが先頭になります。コミットまたは部分的な更新後、一部のファイルはHEADリビジョンにある可能性がありますが、ファイルをスキップしなかった更新後にのみ、すべてのファイルが同じバージョンであることを確認できます。 (スキップする理由は、バージョン管理されていない障害または競合です)。
しかし、は、なぜこれを知る必要がありますか。 Subversionはこれを内部的に知っていなければなりませんが、ほとんどの場合、この知識はユーザにとって重要ではありません。 (Subversionは、ファイルが古くなったときに自動的に警告します)。
私が知る限り、作業コピーからブランチを作成するときは、安定版であることを確認する必要があります。
私はsvnの動作とその実装の詳細を理解したかっただけです。お返事をありがとうございます。 – HeretoLearn
URLを表示していないsvnログではBASEログが表示されますが、あなたのHEADログがURLで表示されるので、重要です。そのため、すべての変更を見るには常に「svn log -rHEAD:1」を使用します。
- 1. svn BASEとCOMMITTEDの違い
- 2. git svnあいまいな引数 'HEAD'
- 3. svnブランチのGITマージでBASEファイルが生成されない
- 4. htmlの値を書き換えます。head> base> href
- 5. Base SDKが見つからない
- 6. Force Jenkins SubversionプラグインがHEADリビジョン
- 7. SVN - 完全なローカルコピーをHEADバージョンに更新する
- 8. HEAD、HEAD ^、HEAD〜1との違いは何ですか?
- 9. リポジトリと同期するheadとSVNのアップデートの違いは何ですか?
- 10. SVN HEADを特定のリビジョンに変更し、セットHEADを先頭に戻します
- 11. ファイルがHEAD
- 12. git svnクローンが移動したsvnトランクにHTTPパスが見つからない
- 13. getElementsByTagName( 'head')は、ページにmoreが定義されていても1つのheadを返します。
- 14. 差:(HEAD - >マスタ)対(HEAD、マスター)
- 15. {{template "base"}}と{{template "base"}}}との相違点
- 16. Android:Fire Baseが4.4.4で動作しない
- 17. SVNのプロジェクトを以前のバージョンに戻してHEADのバージョンにします
- 18. なぜこの一連のgit-svnコマンドは分離HEADになりますか?
- 19. git rebase -i HEADがデタッチヘッドにつながる
- 20. なぜ* headの代わりに** headが使用されていますか?
- 21. "git show HEAD"の結果が "fatal:ambiguous" HEAD ':作業ツリーにないリビジョンまたはパス "
- 22. IAutoMapOverride <Base>とIgnoreBaseの両方の使い方<Base>
- 23. preg_replaceが動作しません$ ragid = "/ <head> *(。*?)</head>/i";
- 24. <HEAD>にいくつの数が含まれていますか?
- 25. git resetの違い--hard HEAD ^対git reset - hard HEAD?
- 26. git svn SVNリポジトリの1つのディレクトリのクローン
- 27. Appium。モジュール 'appium-base-driver'が見つかりません
- 28. Blackberry BrowserField Base Url
- 29. app/design/frontend/base/default /は見つからないのですか?
- 30. Google Baseアシスタント
ただし、コミット後に必ずしも更新する必要はありませんが、簡単には更新後も同じです。ディレクトリと "複合リビジョン作業コピー"を考慮してください。 – bendin
"Subversionの基本的なルール"の1つは、これらの "複合リビジョン作業コピー"を作成することです。つまり、何が起こっているのかを完全に知ることなくコミットを作成することができます。 –