У МЕРЗАВЦА есть злые двойные проблемы?

В ClearCase происходит злой близнец, когда два файла найдены с тем же именем в двух различных версиях каталога, и Если элемент, OIDs отличаются, но имена являются тем же.

В МЕРЗАВЦЕ идентификатор SHA1 всегда уникален, и файл с тем же именем всегда имеют другой идентификатор SHA1.

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

Может любой сообщать мне, будут ли проблемы в МЕРЗАВЦЕ, подобном ClearCase или синусу, каждый идентификатор SHA1 уникален в МЕРЗАВЦЕ не будет никаких Злых двойных проблем.

7
задан Senthil A Kumar 26 May 2010 в 04:22
поделиться

4 ответа

Git отслеживает на уровне всего дерева, а не отдельных файлов и каталогов, поэтому у него нет такой концепции, как OID.

При объединении историй, которые включают несовместимые изменения в файл (например, оба добавили новый файл с другим содержимым), Git вызовет конфликт слияния и остановится, чтобы позволить пользователю разрешить конфликт или прервать слияние.

Конечно, Git не может заставить пользователя, выполняющего слияние, поступать правильно, но, возможно, труднее полностью игнорировать одну сторону конфликта. В Git конфликт будет в самом файле, а не в каталоге, в котором находится файл. Другими словами, конфликт будет касаться содержимого файла, а не того, какой OID следует связать с каталогом. Конечно, в зависимости от используемого инструмента, пользователь может по-прежнему просто нажимать «принимать мою сторону во всех конфликтах», но Git это не заботит ни в малейшей степени (хотя босс и коллеги ленивого болвана могут очень заботиться!).

7
ответ дан 6 December 2019 в 19:33
поделиться

О злые двойные ошибки, это возвращает меня назад. Нет, в git таких ошибок быть не должно. Git на самом деле не столько отслеживает весь файл, сколько фрагменты файлов.

0
ответ дан 6 December 2019 в 19:33
поделиться

Да, в Git есть какая-то «злая» операция, но не по той же причине, что злые близнецы ClearCase :

Их называют злым слиянием :

слияние, которое вводит изменения, которых нет ни в одном родителе.

То есть: вставка в код вещей, о которых никто никогда не просил, с названием «злое слияние», потому что это сложный угловой случай для «git blame» при аннотировании файла.
Эти слияния обычно связаны с семантическим конфликтом между двумя слияниями версий (а не с простым текстовым конфликтом).
Побочным эффектом будет то, что вместо добавления, удаления или изменения измененной строки вы получите обе строки (из двух объединяемых версий) в результате слияния ...

3
ответ дан 6 December 2019 в 19:33
поделиться

Нет, но есть оторванная голова. Извините, не смог удержаться :)

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

3
ответ дан 6 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: