Товарищи git'исты и hg'исты!
Nov. 6th, 2011 10:29 amМне похожа нужна консультация по распределённым системам контроля версий:
как я правильно понимаю, и в git и в hg система меток и веток скорее похожа на cvs'ную, а не на svn'ную, то есть они не часть пространства директорий, а некий совсем отдельный вектор.
Соответственно вопросы:
1. Если я единожны создам branch(head) или tag то смогу ли я его потом удалить
2. Если удалить смогу, то как будет осуществляться доступ к тому что было удалено
3. Если не смогу, то как поддерживать порядок, и не копаться в куче древних ветвей
4. У меня в git вся иерархия svn импортировалась деревом c branches/trunk/tags. Мне что теперь чтобы сохранить эту идеологию надо от этой иерархии насоздавать требуемое кол-вто веток, переместить требуемое поддерево в корень и поименовать этот бранч/ затагить? И в результате окажется та же структура но уже в понятиях git/hg?
5. В hg импортировать svn мне не удалось, она пытается иерархию branches/trunk/tags воспринимать как свои ветки и метки, и не осиливает того безобразия которе там творилось за всю историю, и часть истории не импортирует... Вилидимо если xtodin так хочет hg буду ее мигрировать через git
как я правильно понимаю, и в git и в hg система меток и веток скорее похожа на cvs'ную, а не на svn'ную, то есть они не часть пространства директорий, а некий совсем отдельный вектор.
Соответственно вопросы:
1. Если я единожны создам branch(head) или tag то смогу ли я его потом удалить
2. Если удалить смогу, то как будет осуществляться доступ к тому что было удалено
3. Если не смогу, то как поддерживать порядок, и не копаться в куче древних ветвей
4. У меня в git вся иерархия svn импортировалась деревом c branches/trunk/tags. Мне что теперь чтобы сохранить эту идеологию надо от этой иерархии насоздавать требуемое кол-вто веток, переместить требуемое поддерево в корень и поименовать этот бранч/ затагить? И в результате окажется та же структура но уже в понятиях git/hg?
5. В hg импортировать svn мне не удалось, она пытается иерархию branches/trunk/tags воспринимать как свои ветки и метки, и не осиливает того безобразия которе там творилось за всю историю, и часть истории не импортирует... Вилидимо если xtodin так хочет hg буду ее мигрировать через git
no subject
Date: 2011-11-08 08:26 am (UTC)И он его предки тогда сборщиком мусора не соберутся?
no subject
Date: 2011-11-08 08:36 am (UTC)Не соберутся.
no subject
Date: 2011-11-09 06:24 am (UTC)затащил мне в репозиторий только транк... :-/
$ git branch
* master
Я что-то не так сделал?
no subject
Date: 2011-11-09 06:45 am (UTC)no subject
Date: 2011-11-09 06:52 am (UTC)Ага... ладно...
При следующей попытке запущу логгирование... Хотя вроде бы ничего криминального на stdin'е не было, когда я туда посматривал...
no subject
Date: 2011-11-09 04:34 pm (UTC)при импорте в git'е все логи и все annotate'ы имеют историю вплодь до ближайшего копирования/перемещения. До этого история теряется...
Так и должно быть? В смысле, если уже средствами гита что-то скопировать, то история теряется также?
С этим можно как-то бороться?
no subject
Date: 2011-11-09 08:44 pm (UTC)no subject
Date: 2011-11-11 05:44 am (UTC)Сделал еще один подход:
В процессе клонирования писалось:
r8891 = 72c601768d80449921be01f365aa9ad461c871f5 (refs/remotes/build-files) A 0.9.5/altlinux/altlinux.spec r8892 = cf523ae6fda276372184efdc5bbf1be080354da2 (refs/remotes/build-files) D altlinux.spec W: -empty_dir: trunk/altlinux.spec r8892 = 3c892c3b631ddcd9746b19c51779740ee4c948bf (refs/remotes/trunk) M plugins/spell/spell.cpp M plugins/spell/spell.h M plugins/spell/spellhighlight.cpp r8893 = a182c4c9b068be4628ffd4d38ffe44f6f900c599 (refs/remotes/trunk) M plugins/spell/spellhighlight.cpp M plugins/spell/spellhighlight.h r8894 = 81575b6ceb3a45f74936abb96dc5732cf972a4c4 (refs/remotes/trunk)И так далее...
Внутри .git/info все ветки -- перечисленны:
но однако на git remote -v оно не печатает ровным счетом ничего...
на git branch говорит что есть только master
no subject
Date: 2011-11-11 08:19 am (UTC)git branch -a
no subject
Date: 2011-11-11 05:46 am (UTC)git annotate -M -C -C -C
полной истории не показывает, видимо потому что у него нету локально всей истории изменений, и он по ней искать не может...
Как бы эти ветки вернуть на родину?
no subject
Date: 2011-11-11 08:21 am (UTC)Истории изменений может не быть локально только если об этом специально попросили. Можно конкретику, что именно не работает и как?
no subject
Date: 2011-11-11 02:21 pm (UTC)Потому что мне пофиг какой формат выврда, лишь бы оно всю историю отслеживала
Зачем -C три раза?
Чем больше -С тем больше глубина поиска
Можно конкретику, что именно не работает и как?
Тут даже не то чтобы что-то работает не так, скорее я не понимаю как добиться того что мне надо.
Мне нужен репозиторий со всей историей проекта. Если импортировать без ключа -s то тогда в репозиторий попадает вся svn'ая структура директорий /tags/branches/trunk, и в ней если сказать git blame -M -C -C -C то оно покажет авторство каждой строки начиная с начала времен.
Если же импортировать с ключем -S то в репозиторий попадает то что лежит в /trunk а ветки и таги попадают оный remotes Соответственно если в таком репозитории сказать git blame -M -C -C -C на ченджлог, то оно покажет изменения начиная с того места когда были какие-то сильные телодвежения в рамках ветвления...
Чело мне в этом не хватает: Надо научится как это remote ветки перевести в не remote состояние. либо при импорте, либо уже после.
Тогда я убеждаюсь что вся история сохранилась, и начинаю наводить порядок в репозитории... Если не сохранилась, то пытаюсь придумать что с этим делать:-/
no subject
Date: 2011-11-12 08:28 am (UTC)git log -M докуда изменения показывает?
no subject
Date: 2011-11-12 10:05 am (UTC)Гм... однако на скопированных файлах он как минимум дает нужный эффект...
git log -M докуда изменения показывает?
До момента переименования.
git log --follow до начала времен.
no subject
Date: 2011-11-12 10:18 am (UTC)А log -M это "If generating diffs, detect and report renames for each commit. For following files across renames while traversing history, see --follow."
no subject
Date: 2011-11-12 10:53 am (UTC)no subject
Date: 2011-11-12 11:10 am (UTC)no subject
Date: 2011-11-12 11:46 am (UTC)Это на git'е в которой все единой структурой директорий засосалось...
no subject
Date: 2011-11-12 02:47 pm (UTC)no subject
Date: 2011-11-11 04:21 pm (UTC)1. Правильно ли я понимаю, что оные remote ветки пока в гите не хратятся и будут при обращении к ним затянуты в репозиторий?
2. Как эти remote ветки привратить в обычные локальные, чтобы этот репозиторий можно было вынести на внешний хостинг? Я что-то не осилил.
no subject
Date: 2011-11-12 08:25 am (UTC)2. git checkout -b branch remotebranch