![]() |
![]() |
|
WinCVS. Как объединить ветку? Ø |
☑ | ||
---|---|---|---|---|
0
ibo
25.08.05
✎
10:44
|
Не могу понять как делать слияние веток. Знающие люди моможите!
|
|||
1
ibo
25.08.05
✎
11:09
|
Вот структура одного файла
1.1 1.2------UserTest1-branch 1.3 1.2.2.1 1.4 1.2.2.2 Основной ствол и ветка лежат в своей локальной копии. Хочу объединить ветку с основным стволом, чтобы создалась версия 1.5. Мои действия: Позиционируюсь на локальной копии основного ствола->правая кнопка мыши->Update...->закладка Update options->Галка на By revision/tag/branch:->в списке выбираю UserTest1-branch->ОК Результат: в локальной копии основного ствола версия файла становится 1.2.2.2 и файл точно такой же как в ветке, без изменений в версиях 1.3 и 1.4 Что делаю не так? |
|||
2
ADirks
25.08.05
✎
12:33
|
Когда делаешь апдейт, на закладочке merge options выбери правильный тип мержа, и ревизию.
|
|||
3
ibo
25.08.05
✎
13:06
|
(2)Получилось. Но пишет, что конфликт
<<<<<<< МД.txt 1 ======= 1 Ветка Ветка2 ццццц 111 >>>>>>> 1.2.2.2 хотя прога должна бы добавить строки и всё, или я чего-то не понимаю? |
|||
4
ADirks
25.08.05
✎
13:10
|
(3) Ну не вышло автоматом. Вообще-то лучше в таких случаях не умничать, и тупо самому смержить kdiff'ом :)
|
|||
5
ibo
25.08.05
✎
13:30
|
(4)эх а я то размечтался...
Объясни по шагам, как лучше сделать это смерживание kdiff'ом. С kdiff работаю уже месяцев 5, но как сливать ветку тупо и самому, не догадываюсь. |
|||
6
ADirks
25.08.05
✎
13:40
|
(5) Да фигли там сложного?! Значит так:
1) делаешь рабочую копию, чтобы там основной ствол был 2) делаешь граф нужного файла 3) тыкаешь в нужную ревизию 4) жмёшь дифф, так чтоб внешняя диффалка при этом вызвалась (kdiff) 5) в кдиффе жмёшь объединение/объединить текущий файл 6) разрешаешь все конфликты 7) жмёшь save 8) в WinCVS жмёшь update всё. |
|||
7
ibo
25.08.05
✎
13:59
|
(6)т.е. пользоваться штатным слиянием - это стрЁм, тем более внутренние ИД.
Правильно понимаю в связке: 1ЭЗ:) + GComp + CVS ветки только для прикола, пользы от них никакой, только информативность, что мол была трабла, её когда-то решали? Или чего-то не догоняю и можно как-то ветки прикрутить на пользу делу? Ещё вопрос при вызове внешней диффалки а именно kdiff вместо русских букв квадратики. В настройках kdiff-а при каждом нажатии на "Выбрать шрифт" Набор - Латинский, как будто он настройки не сохраняет. В "Региональные настройки" язык Русский, кодировка CP 1251. Но если просто запустить kdiff и указать файлы, то всё нормально. В чем трабла, и как сделать, чтобы из WinCVS запускался kdiff нормально? |
|||
8
ibo
25.08.05
✎
14:02
|
(6) вопрос про пункт 8)
надо жать update или Commit...? |
|||
9
a13x
25.08.05
✎
14:05
|
(8) commit
|
|||
10
ADirks
25.08.05
✎
14:09
|
(7) Атоматический мерж - он же не умеет конфликты разрешать. Он просто напросто оставляет конфликтный кусок в тексте. Кдифф делает практически то же самое - т.е. заставляет тебя разрешать конфликты - только выглядит это более наглядно.
Использование веток - это вообще твоё личное дело. Хочешь юзай, не хочешь - не юзай. Если они кажутся бесполезными - значит так оно и есть в данном конкретном случает. Когда они понадобятся ты сам скорее всего поймешь. Там надо не шрифт выбирать, а в региональных настройках (самая последняя закладка) выбрать кодировку 1251. Если у тебя версия меньше 0.9.88 - рекомендую обновиться. |
|||
11
ibo
25.08.05
✎
14:25
|
(10)Что в понятии мержа конфликт? Если я добавлю пару строк в конец файла это ведь не конфликт, а он мне его не объединил :(((
----- KDiff3 Version 0.9.88 Я ведь и пишу в (7):В "Региональные настройки" язык Русский, кодировка CP 1251. Что за засада? ----- Про ветки хочется узнать опыт работы с ними. Дело в том, что нас несколько программеров. Я обновляю конфиги. Пока один пишет одно задание, надо обновить конфигу по другому заданию. Да и своя конфигурация уже не так актуальна. В общем каждый делает копию базы, в ней делает задачу, а потом я объединяю. Тяжко!!! Вот и хотел как-нибудь сделать всё по-нормальному. Но пока не допетрил. Поделись опытом. |
|||
12
ADirks
25.08.05
✎
14:40
|
(11) Конфликт - это когда диффалка не может однозначно решить, какой вариант предпочесть. Когда просто что-то добавляешь/удаляешь, то такого обычно не бывает.
Если есть несколько долгих проектов, не сильно между собой связанных, то стоит использовать бранчи. Т.е., пока проект не доведён до состояния, когда его можно в рабочую базу выкладывать, он живёт в отдельной ветке. Как только всё готово - заливаешь его в основной ствол. И никакого гемора - в основном стволе всегда имеем рабочий МДшник. Если надо что-то по мелочи подправить, то это уже и в основном стволе можно. Для того и CVS, чтобы в 1С ничего не объединять. И почаще апдейт рабочих копий делать. Да, и когда забираешь из репозитария обновление, то собранный МДшник нужно загружать в свою рабочую базу, а не объединять - иначе внутренние идентификаторы расползутся. |
|||
13
ibo
25.08.05
✎
14:53
|
(12) Правильно понял, что "Как только всё готово - заливаешь его в основной ствол." заливку надо делать вручную как ты описал в (6)?
Ещё вопрос про внутренние идентификаторы. Почему надо делать замену, ведь при объединении 1С анализирует по наименованию объектов? Я спрашиваю, не для того, чтобы спорить, а чтобы разобраться. |
|||
14
ADirks
25.08.05
✎
15:01
|
(13) Если объекты в основном стволе никто не менял, то можно просто скопировать файлы из ветки в рабочую копию с основным стволом, и заапдейтить. Если же кто-то что-то менял, то надо смотреть (и на автомат лучше не полагаться) и мержиться.
Если загружать изменения объединением, то у разных разработчиков моггут получиться разные внутренние ИД у одних и тех же объектов. И при последующих апдейтах полезут конфликты. Поэтому базы разработчиков д.б. всигда синхронизированы по внутренним ИД. В рабочую же базу, где юзвери пашут, можно и объединением заливаться. Да, рекомендую повнимательнее изучить внутренности файла ОбъектыМетаданных.txt, *.mdp и *.ord файлов. Особенно внимательным нужно быть при добавлении новых объектов - если какой-то файл не скоммитишь, то в результате можно получить битый МДшник, либо МДшник без нового объекта. |
|||
15
ibo
25.08.05
✎
15:03
|
(12)Ещё вопрос про апдейт рабочих копий. Это апдейт основного ствола или при слиянии одной ветки со стволом надо другую обновить до последнего состояния основного ствола?
|
|||
16
ADirks
25.08.05
✎
15:11
|
(15) Тут опять же всё зависит от ситуации. Если тебе не нужны текущие изменения от других разработчиков - то апдейтишься из основного ствола и своей ветки. Если нужны - то из осн. ствола и веток нужных тебе проектов.
Если в проекте, который ведётся в отдельной ветке, понадобятся изменения из осн. ствола, или из других веток - то просто мержишься. |
|||
17
ibo
25.08.05
✎
15:37
|
(16) Заглянул в ИдентификаторыКонфигурации.mdp и увидел
Unknown ID: 7120 Причем это с разными md-хами. Так и должно быть? |
|||
18
ibo
25.08.05
✎
16:05
|
(17) Значит так и надо :)
----------------- Спасибо ADirks, a13x ! А так же всем ! |
|||
19
fez
25.08.05
✎
16:51
|
(17) Да, так и надо. Оно у всех 7120, а что это такое - знает только БГН.
|
|||
20
ibo
25.08.05
✎
17:08
|
(19) Спасибо, а я уже думал, что у меня какой-то битый мд.
|
|||
21
ibo
25.08.05
✎
17:26
|
Разобрался с kdiff-ом. Когда он показывает квадраты, надо зайти в настройки и там выставить ru, 1251. Затем F5. Потом он сам подхватит нашу кодировку. Наверно он запоминает для каждого варианта свою кодировку.
|
|||
22
a13x
25.08.05
✎
18:38
|
(18) Мне совсем незачто, а Алексею действительно спасибо, и тебе за правильные вопросы :-)
. Все вопросы/ответы без хирургического вмешательства можно в FAQ помещать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |