Subversion: Как выполнить обновление для проверки?
У меня есть ситуация, когда:
- Разработчик работает над проектом SVN.
- Лицо проверяет проект SVN, уходит, ребенок/кошка/жена сидит/dools/sleepwalks/что угодно на компьютере и вставляет gobbledygook asdfg-код. Человек выполняет проект.
- Разработчик видит плохие файлы и Update To Revision обратно в последнюю рабочую версию
Все хорошо, пока разработчик не захочет совершить проект. Если разработчик внес изменения в файл, о котором идет речь, он будет исправлен просто отлично. НО, если нет - разработчик только Update To Revision и никаких дальнейших изменений не внесен - этот файл не будет выполнен, и любые обновления проекта будут отображать вам файл asdfg-кода gobbledygook.
Вопрос: если я только обновляю файл "Обновить до версии", как мне его снова выполнить без ручного редактирования файла?
Ответы
Ответ 1
Я думаю, что вы выбрали неправильный маршрут вокруг проблемы.
Вместо того, чтобы изменять какую ревизию вы смотрите, вы должны иметь:
- Обновлена до последней версии, включая мусор
- нашел фиксацию мусора в журнале изменений и выбрал возврат этого изменения
- совершил очистку с любыми другими изменениями, которые у вас были с вашей рабочей копией или без нее.
Итак, теперь вы должны обновить до последней версии (применяя изменение мусора) и вернуть свое изменение, которое вернет вас обратно. В значительной степени, как если бы они внесли изменения, пока вы работали и не имели изменений в первую очередь.
Вы можете совершать транзакции только тогда, когда ваш код обновляется с головой рабочей ветки/соединительной линии.
SVN не будет создавать ветку для вас динамически в этот момент более ранней версии, вам нужно выбрать ветку или обновить ее до головы.
Ответ 2
Если вы находитесь в окнах и используете TortoiseSVN:
- Щелкните правой кнопкой мыши на директории, выберите "TortoiseSVN > Merge..."
- Выберите "Слить диапазон изменений"
- В "Url to merge from" выберите текущую ветку (ту, которая выдается в текущем каталоге)
- В поле "Изменить диапазон для объединения" или выберите ( "Показать журнал" ) последнюю версию неправильной
- Отметьте флажок "Обратное слияние"
Затем после слияния просто зафиксируйте!:)
Ответ 3
Вы можете просто отменить изменения, используя следующие
svn merge -c -RevisionWhichWasWrong ^/trunk
RevisionWhichWasWrong - это последнее, которое вы отметили. После этого просто сделайте
svn commit
и что он.
BTW: Невозможно проверить, если вы никогда не вносили изменений в содержимое файлов.
Ответ 4
Хороший вопрос! Насколько я знаю, это возможно только вручную, добавив в файл пробел или что-то в этом файле, поэтому subversion видит файл как измененный. После этого создается новая ревизия.
Ответ 5
1- Обновить до специальной версии, что вы хотите быть последней версией.
- Экспортируйте эту версию в папку.
3- Обновить рабочую копию до последней версии.
4- Перезаписать экспортированные файлы и папки в папку рабочей копии.
5- Commit!