[devel] Q: fpc.git + git-svn

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Сен 16 04:35:49 MSD 2006


Вопрос к знатокам по git.  Всё ли я сделал правильно?
У меня есть два урла:
http://svn.freepascal.org/svn/fpc/branches/fixes_2_0/compiler
http://svn.freepascal.org/svn/fpc/branches/fixes_2_0/rtl

Я хочу импортировать их в git репозитарий и работать с ними как с единым
целым.  Я делаю примерно вот что:

$ GIT_SVN_NO_LIB=1 git-svn --id fpc20-compiler init http://svn.freepascal.org/svn/fpc/branches/fixes_2_0/compiler
$ GIT_SVN_NO_LIB=1 git-svn --id fpc20-compiler fetch
...
$ GIT_SVN_NO_LIB=1 git-svn --id fpc20-rtl init http://svn.freepascal.org/svn/fpc/branches/fixes_2_0/rtl
$ GIT_SVN_NO_LIB=1 git-svn --id fpc20-rtl fetch
...

В этом месте есть только один бранч master, который как бы
соответствует fpc20-compiler.  Для fpc20-rtl отдельного бранча не
появилось.  Здесь я плохо понял, куда он там чего сделал, ну ладно.
Дальше план: переложить compiler и rtl в отдельные каталоги и слить всё
это в единый бранч.

$ git-checkout -b rtl remotes/fpc20-rtl
$ mkdir rtl
$ setopt extended_glob
$ git-mv *~rtl(/) rtl/
$ git-mv *(.) rtl/
$ git-commit -a -m "prepared rtl to be imported"
(переместил весь rtl в каталог rtl/ и закоммитил в бранч rtl)
$ git-checkout master
$ mkdir compiler
$ git-mv *(.) compiler/
$ git-mv *~compiler(/) compiler/
$ git-commit -a -m 'moved compiler to its separate subdir'
(переместил compiler в каталог compiler и закоммитил в бранч master)
$ git-merge "Merged compiler and rtl" master rtl
$ git-branch -D rtl
(слилил master/compiler+rtl=master и удалил бранч rtl)

Что показывает теперь gitk, я приложил картинкой.

Меня теперь интересует, что в действительности получилось и как дальше
сливать изменения.

Во-первых, мне не понятно, где находятся бранчи fpc20-compiler и
fpc20-rtl.  На картинке видно бранч fpc20-rtl и там дальше внизу есть
бранч fpc20-compiler, но git-branch показывает всего один бранч "* master".

Теперь, если я буду продолжать делать `git-svn --id fpc20-rtl fetch' и
`git-svn --id fpc20-rtl fetch', куда будут сливаться svn'овские
изменения?  Они сразу окажутся в бранче master?  Или после того, как я
сливаю очередные изменения, нужно будет отдельно делать
`git-pull . remotes/fpc20-comiler' и `git-pull . remotes/fpc20-rtl'?
А можно ли будет два этих пулла сделать атомарно?  Что-то я вообще не
понял, в git'е есть понятие changeset или нет?
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : fpc.png
Тип     : image/png
Размер  : 3773 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060916/fa6102b1/attachment-0001.png>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060916/fa6102b1/attachment-0001.bin>


Подробная информация о списке рассылки Devel