LINUX.ORG.RU

Миграция SVN → Git

 , , , ,


0

1

Я сделал так:

$ git svn clone svn://svn.code.sf.net/p/elftoolchain/code elftoolchain
$ cd elftoolchain/
Создал файл .git/svn/authors.txt со следующим содержимым:
emaste = Ed Maste <emaste@FreeBSD.org>
hglee = Hyogeol Lee <hglee@FreeBSD.org>
jkoshy = Joseph Koshy <jkoshy@FreeBSD.org>
kaiwang27 = Kai Wang <kaiwang27@gmail.com>
yganag = Y Giridhar Appaji Nag <yganag@acm.org>
Потом сделал так:
$ git config svn.authorsfile .git/svn/authors.txt
$ git svn rebase --fetch-all -A .git/svn/authors.txt
А коммиты всё равно подписаны так:
Author: kaiwang27 <kaiwang27@95820547-d848-0410-985e-9ae8fe0fa350>
ЧЯДНТ?

★★★★★

Указывай авторов сразу при клонировании

git svn clone repopath --authors-file=/path-to-authors/authors.txt --no-metadata

kiotoze ★★★★
()
Ответ на: комментарий от kiotoze

То есть мне опять ждать три часа, пока всё склонируется? Нельзя как-то ускорить процесс?

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Нельзя как-то ускорить процесс?

Обдать горячим паром.

rupert ★★★★★
()
Ответ на: комментарий от CYB3R

Можно попытаться как-то так:

git filter-branch --env-filter='
    name="$GIT_AUTHOR_NAME"
    email="$GIT_AUTHOR_EMAIL"

    line=$(grep "^$name" .git/svn/authors.txt)
    if [ ! -z "$line" ]
    then
        name=$(echo $line | sed "s/.* = \(.*\) <\(.*\)>/\1/")
        email=$(echo $line | sed "s/.* = \(.*\) <\(.*\)>/\2/")
    fi

    export GIT_AUTHOR_NAME="$name"
    export GIT_AUTHOR_EMAIL="$email"
    export GIT_COMMITTER_NAME="$name"
    export GIT_COMMITTER_EMAIL="$email"
'
Но после этого git-svn работать, естественно, больше не будет.

ilammy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.