/ / svn2git миграция: Правила - git, svn, git-svn, svn2git

svn2git миграция: Правила - git, svn, git-svn, svn2git

Затова реших да използвам svn2git инструмент след солидна препоръка. За да мигрирате хранилището, имам нужда от файл на авторите и файла с правилата, заедно със самото хранилище. Направих всички тези три и ги поставих под директория, която за момента наричам myRepository_test. Очаквам новият ми git хранилище да е тук след миграцията.

Ето структурата на хранилището, която в момента имам:

- myRepository
-- myRepository.release
-- myRepository.mapping
-- myRepository.base
-- ..

Общо тук имам около 30 проекта.

С настоящото споделям файловете си, които ще бъдат използвани:

authormap.txt:

egent = Emma Gent <emma.gent@someDomain.com>
gstar = Gabriel Star <gabriel.star@someDomain.com>
.
.

За момента исках да опитам само за 2 проекта, така че:

myRepository.rules:

create repository myRepository
end repository

# main history

match /trunk/myRepository/myRepository.release/
repository myRepository
branch master
end match

match /trunk/myRepository/myRepository.mapping/
repository myRepository
branch master
end match

# Ignore everything else
match /
end match

което прави последната команда:

./svn-all-fast-export --identity-map authormap.txt --rules myRepository.rules --add-metadata http://address/svn/myRepository

който завършва с:

Loading rules from: "myRepository.rules"
Loading rules from "myRepository.rules"
Could not read the rules file: myRepository.rules
Aborted (core dumped)

Не съм много сигурен за съдържанието на файла с правилата, би било хубаво, ако някой може да ми помогне по отношение на това.

Благодаря предварително.

Отговори:

1 за отговор № 1

Съобщението, което получавате, не означава, че синтаксисът е фалшив, синтаксисът изглежда добре. Той всъщност не може да намери или прочете самият файл. Обаждате се svn-all-fast-export от където директорията, където си myRepository.rules файлът лъже. Имате ли права за четене на файла като потребител, с който се обаждате svn-all-fast-export?

Що се отнася до съдържанието на файла с правила, не мисля, че вече е напълно правилно myRepository.release и myRepository.mapping в корена на хранилището. Ако това е, което сте възнамерявали, това е добре. Ако не, вероятно трябва да използвате a prefix правило вътре match блок, така че съдържанието да се добави към отделни поддиректории. Но ще видите това, след като успяхте успешно да стартирате инструмента.

И още една бележка match изразите са регулярни изрази, така че може да искате да избягате от . и има match /trunk/myRepository/myRepository.release/, Или, ако наистина искате съдържанието в същата папка дори

match /trunk/myRepository/myRepository.(release|mapping)/
repository myRepository
branch master
end match

или ако искате поддопи

match /trunk/myRepository/myRepository.(release|mapping)/
repository myRepository
branch master
prefix 1
end match

или

match /trunk/myRepository/(myRepository.(release|mapping))/
repository myRepository
branch master
prefix 1
end match