簡體   English   中英

如何使用git-svn將以不同目錄為根的svn分支導入git?

[英]How do I import svn branches rooted in different directories into git using git-svn?

我有一個SVN存儲庫結構,如下所示。 我們在分支下使用多個級別用於各種發布維護分支,以及功能分支的目錄。

git-svn init似乎使用單個 - 分支參數,即它似乎期望所有分支都在一個位置。

trunk
branches
  1.1
    1.2.1
    1.2.2
  1.2
    1.2.1
    1.2.2
    1.2.3
  features
    feature1
    feature2

關於如何處理這個問題的任何想法?

謝謝

在配置文件中,將svn-remotes部分設置為:

[svn-remote "svn"]
    url = svn://svnserver/repo
    fetch = trunk:refs/remotes/trunk
    branches = branches/*/*:refs/remotes/*
    tags = tags/*:refs/remotes/tags/*

這應該讓你抓住嵌套的分支。

按照慣例,Subversion將所有分支都存放在Subversion存儲庫中的單個“分支”路徑中,因此git-svn做出這個假設並不奇怪。

我建議如下(請注意,您可能會在此操作中丟失一些歷史記錄):

  1. 使用命名約定展平Subversion branches路徑以保持唯一標識和當前結構的概念。
  2. 執行git-svn
  3. git存儲庫中移動東西以符合您的實踐。

losing history的危險取決於git-svn在不同路徑上遵循復制操作的程度。 我最近遇到了遷移subversion存儲庫(1.4-ish)的問題。

為每個分支子目錄創建一個git倉庫是否可行?

您可以為每個分支添加多個git svn遙控器,或者可能為分支的每個目錄添加多個git svn遙控器。 最初的git svn fetch需要永遠,但從我的理解它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM