git-svn: добавляйте ветки по факту - PullRequest
0 голосов
/ 12 июня 2019

Я успешно импортировал большой репозиторий Subversion в git, используя git-svn. Это заняло более четырех дней, и мне пришлось выручить, пропустив несколько ревизий.

К сожалению, я забыл некоторые ветки.

Причина в том, что их структура в исходной иерархии Subversion существенно отличается. Вот как укладывается большинство ветвей, примерно:

/MainProject // this is the trunk
/MainProject_Branches/SomeBranch
/MainProject_Branches/AnotherBranch

Это работало нормально с --branches=.

Но также есть дополнительные ветви в подпапке old в этой той же папке веток:

/MainProject_Branches/old/AVeryOldBranch
/MainProject_Branches/old/AnotherOldBranch

И также есть совершенно другая иерархия:

/Customers/SomeCustomer/MainProject_CustomerSpecificFork // this, too, is a branch
/Customers/AnotherCustomer/MainProject_AnotherCustomerSpecificFork // this, too, is a branch

Я хотел бы задним числом обработать эти два сценария.

Итак, один, git-svn решил импортировать всю совокупность /MainProject_Branches/old как одну ветвь, что, конечно, не имеет смысла. В этом нет ничего сложного, но в идеале Я бы хотел, чтобы неправильная «старая» ветвь была заменена реальными ветвями внизу. (Кстати, кажется, что SourceTree по крайней мере рассматривает ветку с косой чертой в его имя - иерархия. Поэтому было бы еще лучше, если бы их можно было буквально импортировать в разборную иерархию подветвлений!)

Во-вторых, и что более важно, все специфичные для клиента вилки вообще отсутствуют, поскольку они находятся в совершенно другой иерархии (но в одном и том же репозитории SVN). Я хотел бы, чтобы те были добавлены после факта.

Возможно ли это вообще? Нужен ли мне инструмент, отличный от git-svn?

...