mercurial (hg)
Модератор: Модераторы разделов
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
mercurial (hg)
тут занялся изучением сабжа, возникло несколько вопросов:
1) у меня есть программа на С, в ней каталог src, и именно его я считаю репозиторием для hg. Это правильное решение? Или надо делать не так? И что делать со временным файлами в этом каталоге? Отключить их так:
hg addr -X *.bak
?
или можно и как-то это задавать? (в конфиге например)
2) хотелось-бы, что-бы после удачного завершения make версия сохранялась-бы... Это наверное что-то надо в Makefile прописать? или есть другое решение?
ЗЫЖ извините за тупые вопросы, лет пять назад использовал VSS, да и то - не много...
1) у меня есть программа на С, в ней каталог src, и именно его я считаю репозиторием для hg. Это правильное решение? Или надо делать не так? И что делать со временным файлами в этом каталоге? Отключить их так:
hg addr -X *.bak
?
или можно и как-то это задавать? (в конфиге например)
2) хотелось-бы, что-бы после удачного завершения make версия сохранялась-бы... Это наверное что-то надо в Makefile прописать? или есть другое решение?
ЗЫЖ извините за тупые вопросы, лет пять назад использовал VSS, да и то - не много...
-
- Сообщения: 1913
- Статус: zzz..z
Re: mercurial (hg)
[x] close
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
ага. спасибо. клонировал 18 метров чего-то. буду изучать... жаль по-русски нету...
PS: вот нашёл интересное по теме:
http://mercurial.selenic.com/wiki/TipsAndTricks
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
Подскажите пожалуйста:
У меня есть репозиторий А, и я сделал его клон Б.
Затем эти репозитории развивались и комментились независимо.
Потом я вытянул (hg pull) изменения из А в Б, но слить две ветки в Б не получилось - дело в том, что одна строка в одном из файлов была изменена и в А и в Б.
И теперь я и не знаю, как мне быть: даже если стереть эту проблемную строчку в Б, hg всё равно не даёт мне слить ветки, говорит, что не закоммитеная. И закомминить не даёт. Что делать? Хотелось-бы всё-же слить ветки (что будет с проблемной строкой меня не слишком волнует - её я перепишу заново).
ЗЫЖ вышла новая стабильная версия сабжа: date: Wed Apr 07 16:55:01 2010 +0200
У меня есть репозиторий А, и я сделал его клон Б.
Затем эти репозитории развивались и комментились независимо.
Потом я вытянул (hg pull) изменения из А в Б, но слить две ветки в Б не получилось - дело в том, что одна строка в одном из файлов была изменена и в А и в Б.
И теперь я и не знаю, как мне быть: даже если стереть эту проблемную строчку в Б, hg всё равно не даёт мне слить ветки, говорит, что не закоммитеная. И закомминить не даёт. Что делать? Хотелось-бы всё-же слить ветки (что будет с проблемной строкой меня не слишком волнует - её я перепишу заново).
ЗЫЖ вышла новая стабильная версия сабжа: date: Wed Apr 07 16:55:01 2010 +0200
-
- Администратор
- Сообщения: 5355
- ОС: Gentoo
Re: mercurial (hg)
Попробуйте, например, сделать в Б "промежуточный" коммит, который можно будет слить с А.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
тоже не получается :(
/dev/random писал(а): ↑09.04.2010 16:20Попробуйте, например, сделать в Б "промежуточный" коммит, который можно будет слить с А.
дык не даёт комменты делать - как я понял голова из А самая новая...
Код: Выделить всё
@ 7: горлова из А
|
|
| o 6: голова из б
| |
| |
| |
| |
| o 5
| |
|/
o 4
|
такое в Б...
-
- Администратор
- Сообщения: 5355
- ОС: Gentoo
Re: mercurial (hg)
Ну так переключитесь на голову из Б. Или я вас не так понял?
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
э... простите ламера... а как?
-
- Администратор
- Сообщения: 5355
- ОС: Gentoo
Re: mercurial (hg)
hg update -C голова_из_Б
Учтите, что вы потеряете незакоммиченные изменения.
Учтите, что вы потеряете незакоммиченные изменения.
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
/dev/random писал(а): ↑09.04.2010 17:18hg update -C голова_из_Б
Учтите, что вы потеряете незакоммиченные изменения.
а... там "важных" файлов всего 2: Makefile & main.cpp :)
и в каждом 10 строк :)
жаль они на другом компе, сейчас попробую воспроизвести...
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
/dev/random писал(а): ↑09.04.2010 17:18hg update -C голова_из_Б
Учтите, что вы потеряете незакоммиченные изменения.
ага. теперь понятно. Спасибо.
ЗЫЖ незакоммиченые изменения всегда можно сохранить в файл командой hg diff >i.diff
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Зависит исключительно от того, есть ли за пределами src файлы, которые нужно версифицировать.
Наверняка есть и другие, но через мейкфайл, пожалуй, самое "правильное".
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
хм... данная история имеет продолжение:
- я создал 2 клона, и работал с ними в разное время и на разных компьютерах
- через некоторое время я выполнил с "главной" версии hg pull второй_вариант, и у меня опять ничего не получилось:
три файла конфликтовали. - откатился в главной ветке, удалил файлы из репок и сделал коммит
- тоже самое со второй веткой
- потом всё успешно слил
- потом исправил код так, что-бы он не портил эти конфликтные файлы.
- затем добавил эти файлы
Похоже, есть способ проще? Вот только какой?
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
drBatty, может быть, вот это поможет:
http://mercurial.selenic.com/wiki/TutorialConflict
Возможно, предварительно стоит прочитать предыдущую часть:
http://mercurial.selenic.com/wiki/TutorialMerge
Она есть и по-русски (следующую пока не перевели).
http://mercurial.selenic.com/wiki/TutorialConflict
Возможно, предварительно стоит прочитать предыдущую часть:
http://mercurial.selenic.com/wiki/TutorialMerge
Она есть и по-русски (следующую пока не перевели).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
я читал. про разрешение конфликтов там нет.
а здесь коротенько есть. но я не понял...
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
А что именно непонятно? Там ведь всё просто. Или наоборот: слишком просто? Т.е. недостаточно раскрыто для применения на реальной проблеме? Если так, попробуйте посмотреть hgbook, в частности Merging conflicting changes, а также, возможно, Dealing with tricky merges.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
ага. теперь понял.
пойду потренируюсь...
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
я тут подумал, что промежуточных коммитов будет слишком много. настолько, что придётся делать отдельный репозиторий "testing". Похоже так все и делают...
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
За всех не скажу, а у нас в рабочих проектах планируется иметь как минимум три постоянных ветки. Условно их можно назвать, скажем, release, testing и current. В последней будет, собственно, "неприкрытый" рабочий процесс; во вторую будет попадать только тот код, который передаётся тестировщикам; а в первую -- прошедший тесты и подготовленный к выпуску в виде очередной версии прошивки. Вполне вероятно, что для некоторых проектов в процессе реальной работы дерево ещё немного разрастётся.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
угу. а внести эти "ветки" в один репозиторий нет никакой возможности? или они и так в одном?
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Сразу сам не заметил, потому специально подчеркну: я говорил именно про отдельные ветки, а не отдельные репозитории.t.t писал(а): ↑17.04.2010 13:49За всех не скажу, а у нас в рабочих проектах планируется иметь как минимум три постоянных ветки.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Насчёт "внести" не знаю. Их надо изначально оттуда не выносить.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Да, ссылки насчёт веток забыл. Всё та же hgbook. Для начала: Revision history, branching, and merging, затем Working with multiple branches. И в качестве advanced reading можно просмотреть всю главу Managing releases and branchy development.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
а на самом деле всё действительно очень просто: достаточно поставить kdiff3, и прописать его в ~/.hgrc
после чего можно с лёгкостью разрешать любые конфликты. Не менее удобнее это делать и с помощью vim. Попробовал оба способа - всё просто примитивно и писать об этом нечего. По выше перечисленным ссылкам рассказано как это всё сделать.
PS: ссылка побилась...
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Да, я имел ввиду, что описание из туториала уже даже излишне упрощено. А mercurial мне тем и нравится, что ничего сложного (после прочтения документации) в нём нет, что для столь мощного инструмента как dvcs даже удивительно.drBatty писал(а): ↑18.04.2010 18:36а на самом деле всё действительно очень просто: достаточно поставить kdiff3, и прописать его в ~/.hgrc
после чего можно с лёгкостью разрешать любые конфликты. Не менее удобнее это делать и с помощью vim. Попробовал оба способа - всё просто примитивно и писать об этом нечего. По выше перечисленным ссылкам рассказано как это всё сделать.
Спасибо, поправил.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: mercurial (hg)
я сам в шоке (особенно после знакомства с VSS, которая должна быть вообще-то проще) :)
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
VSS это вообще очень показательный пример того, как ms умееть взять в целом хорошую концепцию и испоганить даже не то что до неузнаваемости, а почти до чего-то противоположного (да ещё и за деньги).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
-
- Сообщения: 1913
- Статус: zzz..z
-
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: mercurial (hg)
Он чем-то примечателен по сравнеию с hgbook, не подскажете?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж