2015-10-16 4 views
0

Мне нужно разъяснение о значении «Слияние» в Subversion и о том, как Subversion пытается объединить содержимое.Subversion: почему и как выполняется слияние автоматических линий?

В this answer на вопрос «Пример изменения, что не конфликт», я прочитал, что:

«Line1» и «Line1changed» не противоречат друг другу и «объединяемы». Кроме того, «Line1Changed» может заменить «Line1».

Почему?

В языке программирования это не имеет смысла. Например:
INT фиктивной = IntVar

и

INT манекена = intVar_

не объединяемы ... (на мой взгляд), таким образом, могли бы вы объяснить:

- Почему эти линии сливаются?
- Почему Subversion (я использую Tortoise SVN) пытаюсь автоматически объединить эти строки БЕЗ запроса какого-либо предупреждения? (Я должен знать об этом)

Спасибо!

ответ

1

Я не уверен, что вы внимательно прочитали ответ. В ответе говорится, что если строка изменяется только с одной стороны слияния, ее можно объединить автоматически; если одна и та же строка изменена более чем одним человеком, то вы должны обработать конфликт (одним из нескольких способов).

Таким образом, в вашем примере, если вы начинаете с

int dummy=intVar 

И ваш сосед изменил строку

int dummy=intVar_B 

Тогда он будет автоматически объединить изменения, потому что вы не изменили эту линию; только ваш сосед сделал. Но если исходить из

int dummy=intVar 

И изменить его

int dummy=intVar_A 

И ваш сосед изменил его

int dummy=intVar_B 

Затем вам нужно будет сделать выбор во время слияния, выбирая либо их версию этой строки, либо вашу версию, или, если хотите, вы могли бы выбросить оба и составить новую версию, которая каким-то образом смешивает их или что-то подходящее.

+0

Hi Dan В этом примере предполагается «безопасное» добавление «чего-то» к строке, но мой вопрос:
Почему добавление «Что-то» к строке считается «безопасным» и производится автоматически без внесения пользователем осознавая это? Изменения, сделанные «соседом», могут привести к чему-то непредсказуемому и неконтролируемому. было бы хорошо объединить свои изменения, но Subversion должен попросить меня подтвердить. Где я ошибаюсь? Есть ли какой-либо вариант в SVN, чтобы избежать этого автоматического слияния и заставить их управлять пользователями как конфликты? Спасибо всем за ваше терпение с новичком SVN :) –

+0

Вы вводите в заблуждение безопасность изменений с возможностью автоматического слияния программного обеспечения. Subversion объединит его, потому что он может сделать это без возникновения конфликтов. Недостаточно разумно знать, безопасен ли код - предполагается, что на вопрос отвечает человеческий обзор, автоматическое тестирование или какой-либо механизм, который имеет наибольший смысл для вашей ситуации/команды. –

Смежные вопросы