SVN путается с моими файлами с фальшивыми данными, почему? - PullRequest
4 голосов
/ 20 августа 2010

Иногда я нахожусь в ситуации, когда действительные файлы становятся недействительными, удваивая содержимое, помещая ======= в середине, <<<<<<< .mine в начале и <<<<<<< .r1276 в конце. Это приводит к невозможности сборки проектов:

<<<<<<< .mine
using System;
using System.Data;

namespace MyNamespace
{
     class Xyz
     //... a lot more code ...
}=======
using System;
using System.Data;

namespace MyNamespace
{
     class Xyz
     //... a lot more code ...
}
>>>>>>> .r1276

Кажется, хочется сказать, что «первая часть моя, вторая часть принадлежит ревизии 1276», но почему она это делает и, что более важно, как мне это предотвратить? Я использую AnkhSVN и Visual SVN / Tortoise от Visual Studio. Я, вероятно, нажал не те кнопки, но не знал, что я сделал, и с удовольствием услышал бы от кого-то более знающего с SVN, как мне удалось испортить мои файлы и что делать, чтобы предотвратить это в следующий раз.

Ответы [ 2 ]

10 голосов
/ 20 августа 2010

У вас есть конфликты слияния, которые необходимо разрешить.TortoiseSVN покажет эти файлы в конфликтном состоянии, а «Gibberish» - это способ, которым SVN отслеживает информацию о попытках слияния.

Не изменяйте файлы вручную.Используйте TortoiseSVN «Разрешение конфликтов» и пользовательский интерфейс, который он предоставляет для разрешения этих конфликтов.

Эти конфликты возникают после того, как два разработчика отредактировали их и пытаются зафиксировать свои изменения, и два файла не могут быть автоматически объединены.

2 голосов
/ 22 сентября 2010

@ Дейв Уайт дал окончательный ответ (+1), и у меня есть дополнительный совет, для чего это стоит .... Перед тем, как получить, я хотел бы просмотреть свои локальные изменения, чтобы увидеть, есть ли что-нибудь, чтоЯ действительно должен вернуться.Я программирую на Delphi, поэтому, как правило, у меня есть много файлов .bdsproj и .res, которые имеют глупые модификации, такие как ревизии autoinc, незначительные различия в путях и т. Д. (Наши "официальные" номера ревизий взяты из нашего инструмента автоматической сборки, поэтомуодни спорные)И, конечно же, это строки в файле, которые будут напрямую конфликтовать с любыми другими обновлениями, вызванными автоматической сборкой, так как я делал последний раз.Отменяя мои неважные локальные изменения до "get" (svn update), я избегаю десятков бессмысленных проблем .mine.

...