web-dev-qa-db-ja.com

「SVN for Git Users」リソースはどこにありますか?

そこで私は、会社がSVNを使用する仕事に就きました(将来的にはGitに移行する予定です)。問題は、SVNを知らないことです。私は数多くのGoogleクエリを試してみましたが、SVN-> Gitチュートリアル、「GitがSVNより優れている理由」ブログ、および(一部の)同等のコマンドを提供する特定の「チートシート」だけが見つかります...

SVNに関するO'Reillyの本を読む前に、GitユーザーのためのSVNへの簡単な(しかしtoo簡単ではない)指示は何ですか?

19
Mirrana

正規の参照は Subversion RedBook です。過去のスキルに関係なく、これを最初から読んでください。必要なすべての使用情報を入手できます。 SVNはgitよりもはるかに理解しやすいと言っているため、メインコマンドを少し読むだけで十分です。 基本的な使用法の章 を使用すると、問題なく稼働するはずです。

主な違いは2つあります。

  • commit =中央リポジトリにプッシュします。リベースやローカルコミット、プルもありません。
  • 分岐はディレクトリごとです。リポジトリ全体をディレクトリ構造と考えるのが最善です。ブランチは、コピーオンライトセマンティクスでシンボリックリンクを作成するようなものです。 gitでは、リポジトリ全体をブランチしてそれらを切り替えるため、新しいブランチが作業コピーを「オーバーレイ」しますが、SVNを使用すると、リポジトリの一部を交換できます。通常、人々はトップレベルのフォルダー(通常はブランチと呼ばれます)で分岐するため、切り替えはgitの「オーバーレイ」スタイルの作業に非常に似ています。

分岐はささいなことであり、特にトップレベルフォルダーの「標準」トリオ(トランク、ブランチ、タグと呼ばれる)に固執する場合、マージはDVCSの謝罪担当者が理解したいと思うほど悪くはありません。

SVNがgitを打ち負かすいくつかのビットがあります、疎なディレクトリが思い浮かびます-ここでは、リポジトリの一部のみをチェックアウトします。さらに部品が必要な場合は、必要なものだけを更新します。巨大なリポジトリ(コア製品やプラグインのロードなど)がある場合、これは素晴らしいです。

Gitほど良くないいくつかのビットがあります、恐ろしいツリーの競合が頭に浮かびます-ここで、ディレクトリレベルで競合があります(つまり、編集したファイルを誰かが削除しました)。

Windowsを使用している場合は、TortoiseSVNを使用してください。大きく揺れる。

8
gbjbaanb

可能であればgit svnを使用してください。私はあなたの状況にいて、半年の欲求不満の後、私はgit svnに切り替えて以来、満足しています。

Git svnを使用すると、リポジトリをローカルで使用できます。SVNサーバーへのコミットは、ローカルの変更をSubversionトランクにリベースするgit svn rebaseによって処理され、リベースされたコミットをコミットするgit svn dcommitによって処理されます。

多分それは高度なSubversionの使用には最適ではありませんが、ローカルでgitを使用しているため、すべてが問題ありません。

Git cloneを使用する場合は、Subversionルートフォルダーではなく、ターゲットディレクトリを直接複製する必要があります(clone trunk)。これにより、gitの実行速度が大幅に向上します。そうしないと、作業コピーが巨大になる可能性があります。

免責事項:Subversionブランチなどを作成する場合の状況がわかりません。私が作業したチームはブランチを使用していません(ローカルgitブランチのみ)。

3
wirrbel