Затова реших да използвам 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