Вы не можете вносить изменения, за исключением в HEAD
ствола или ветвей. Это попытка для всех систем управления версиями. В противном случае люди будут переписывать изменения, которые они хотели сохранить.
Есть две вещи, которые вы можете сделать:
- Перейти голову и обновление до последней версии. Subversion не будет перезаписывать ваши изменения, но вместо этого будет просто обновлять, где это возможно. Могут быть некоторые конфликты. Все зависит от того, насколько старый код вы изменили. Например, мы сейчас в редакции 12 001, и я проверил ревизию 11 980, потому что это то, что было на нашем сервере, и я отлаживал ее. Я исправил несколько незначительных проблем в двух файлах. Обновление самой последней версии обновит все файлы, даже файлы, над которыми я работал, но не те области тех файлов, над которыми я работал. Скорее всего, это действительно то, что я хочу сделать. (Конечно, тщательно проверьте, как только вы обновите!).
- Создайте новую ветку, основанную на вашей ревизии. Subversion может сделать это за миллисекунду. Затем сделайте изменения в этой новой ветке.
Давайте снова предположим, я проверил версию 11,980 и последняя редакция была 12,0001:
$ svn co -r 11980 http://path/to/my/project workdir
$ cd workdir
...a bunch of changes
$ svn commit -m"My changes"
SVN Error: you need to update first...
$ svn copy -r11900 http://path/to/my/[email protected] http://path/to/branches/my_branch/project
Теперь у меня есть базы того, что я работал в качестве филиала. Теперь, я собираюсь перейти на эту ветку:
$ svn switch http://path/to/branches/my_branch/project
Мой рабочий каталог на новой ветке, которая была основана на старой версии я работал. Все мои изменения не затронуты переключателем. Теперь я могу без каких-либо проблем зафиксировать свои изменения.
$ svn commit -m"My changes"
$ It worked!
Теперь, если я хочу, я могу объединить свои изменения обратно к первоначальному проекту:
$ svn co http://path/to/my/project workdir2
$ cd workdir2
$ svn merge http://path/to/branches/my_branch/project
Вы должны правильно использовать термины Subversion, потому что вы ** не вернулся ** (AFAICS), но обновлено до более старой (не-head) редакции вашего WC –