Обновление 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 сделал.