0

私はsvnの経験があまりありませんが、gitでの作業に慣れています。

私は次のsvnリポジトリの構造とリビジョンを持っています。

https://server/svn/solution/trunk/solution.sln @ r100
https://server/svn/solution/trunk/project1/project1.csproj @ r150
https:// server / svn / solution / trunk / project2 project2.csproj @ r160

https://server/svn/solution/branches/solution.sln @ r100
https://server/svn/solution/branches/project1/project1.csproj @ r200
https:// server / svn / solution / branches / project2 project2.csproj @ r350

リポジトリのクローンを作成するとき

git svn clone https:// server / svn / solution --stdlayout

私はすべてを手に入れます

(master)$ git branch -a  
* master  
  remotes/project1  
  remotes/project2  
  remotes/trunk  

リモートブランチのローカルブランチを作成したい場合

(master)$ git checkout -b local-project1 project1

チェックアウト時に取得するのはproject1だけです。ブランチにはから何も含まれていません

https://server/svn/solution/branches/solution.sln @ r100

問題を解決するために、私は次のことを試みました:

(local-project1)$ git checkout master
Switched to branch 'master'.
(master)$ git branch local-project1 -D
Deleted branch local-project1 (was 1111a11).
(master)$ git checkout -b local-project1
Switched to new branch 'local-project1'.
(local-project1)$ pwd
/c/workingcopies/solution
(local-project1)$ cd project1
(local-project1)$ pwd
/c/workingcopies/solution/project1
(local-project1)$ git branch --set-upstream local-project1 remotes/project1
Branch local-project1 set up to track local ref refs/remotes/project1.
(local-project1)$ git svn fetch
(local-project1)$ git reset --hard ae8e9b1a ;# go to last commit of the remote branch

フェッチはリポジトリ内のブランチから最後のリビジョンを取得し、HEADは最後のコミットに設定されますが、ソリューションではなく、ブランチ内のproject1のみを取得します。アドバイスや助けをいただければ幸いです。

4

1 に答える 1

1

問題は、標準のsvnレイアウトがないことです。標準のレイアウトでは、各ブランチのブランチの下にディレクトリがあります。

repo/
  +-- trunk
  |     +-- solution.sin
  |     +-- project1/project1.csproj
  |     +-- project2/project2.csproj
  +-- branches/
        +-- branch01/
              +-- solution.sin
              +-- project1/project1.csproj
              +-- project2/project2.csproj

代わりに、トランクと同じディレクトリに「ブランチ」と呼ばれるトランクとブランチがあります。

gitにこれを適切に処理するように指示できるかどうかはわかりません。いくつかのアイデアがあります。.git/configを編集して、gitが最上位のディレクトリでブランチを検索するようにすることもできますが、トランクが既にあるときにトランクと呼ばれるブランチを作成しようとすると混乱する可能性があります。

于 2011-03-02T17:49:57.650 に答える