Обновление SVN и изменения в устаревшем файле

Как именно работают обновления SVN? Я знаю, что он вносит все изменения в копию SVN в ваш локальный.

У меня есть устаревший файл, из-за которого моя копия не была зафиксирована с ошибкой:

файл 'somename' устарел

Наиболее распространенным решением на SO является сделать svn update команда, а затем svn commit,

Но разве это не позволило бы мне потерять изменения, которые я сделал в моих файлах в моей локальной копии, включая устаревшую?

2 ответа

Решение

Вы можете сделать резервную копию локального файла и получить обновление SVN. Позже используйте любой инструмент сравнения файлов, чтобы объединить ваши изменения. Beyond Compare обычно используется для объединения больших файлов. Или же, если вы используете Eclipse с плагином SVN, это намного проще. Щелкните правой кнопкой мыши по проекту или файлу, перейдите в Team > Synchronize with Repository. Вы увидите представление Team Sync в том смысле, что ваш файл должен отображаться при исходящих изменениях или в конфликте. Дважды щелкните файл для слияния, а затем объединить файл SVN с локальным. После того, как все сделано, щелкните правой кнопкой мыши на файле и нажмите на пометить как объединенный. Наконец, проверьте в файле.

Это "позволяет вам" потерять ваши изменения? Конечно, я думаю. Это может потерять ваши изменения? Не за что. Будет ли это молча засорять ваши изменения? Точно нет.

Делать svn update объединит изменения хранилища в вашу рабочую копию. Предполагая, что вы работаете с текстовыми файлами, это означает, что если вы внесли изменения в те же строки, что и изменения в репозитории, вы получите "конфликт слияния", который вы должны разрешить вручную. Таким образом, если вы потеряете свои изменения, это потому, что вы запутались во время разрешения конфликтов, а не из-за того, что SVN сделал.

Другие вопросы по тегам