Как заменить неправильный код (совершенный по ошибке) в хранилище - PullRequest
4 голосов
/ 15 октября 2010

Я новичок в SVN и застрял после ошибки.

У меня есть две системы:

а) система 1 - рабочая копия с правильным кодом

б) система 2 - рабочая копия с неверным кодом, ошибочно зачисленная в хранилище

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

файл xyx устарел

Очевидно, что я не могу обновить рабочую копию системы 1, в противном случае я теряю правильный код.

Как мне выйти из этого тупика?

Спасибо

Fab.

Ответы [ 6 ]

6 голосов
/ 15 октября 2010

Вот статья о том, как отменить коммит с помощью Subclipse:

Как отменить коммит

По сути, вы открываете представление истории, выбираете неверную ревизию и возвращаете ее, используя контекстное меню (из статьи):

alt text

Вы можете отменить коммит из командной строки, используя svn info / log / merge . Вот краткая статья о том, как это сделать: svn undo из командной строки

2 голосов
/ 15 октября 2010

Чтобы вернуть код, который вы ошибочно приняли в ревизии 10:

svn update
svn merge -r10:9 .
svn commit -m'reversing commit made by mistake in -r10'

Теперь, если вы хотите вернуть этот код, но оставить его незафиксированным (возможно, отредактировать его и затем повторно отправить):

// this assumes that the reversal committed above was -r11.
svn update
svn merge -r11:10 .
2 голосов
/ 15 октября 2010

Использовать возврат. Вы можете вернуть файл к ревизии, которая, по вашему мнению, хороша. Затем передайте этот файл в качестве новой ревизии. Обязательно вернитесь к редакции, а не обновите ее до версии.

0 голосов
/ 15 октября 2010

Сохраните копию правильного кода.Обновите свою рабочую систему, чтобы она использовала неверный код, поэтому теперь рабочая система является "текущей".Добавьте изменения, чтобы сделать код работоспособным (возможно, просто скопируйте его обратно на место).Отправьте хорошую копию кода в следующей версии.

Помните, что изменение - это просто изменение, хорошее или плохое.Ключ не в том, чтобы потерять хорошую копию кода в случайном порядке.Есть и другие способы сделать это, но основная идея та же:

  1. Обновите свой код (таким образом получая плохую копию).
  2. Измените его, чтобыбороться (таким образом восстанавливая хорошую копию).
  3. Отправьте свои изменения (таким образом восстанавливая хорошую копию для всех).
0 голосов
/ 15 октября 2010

Скопируйте рабочий код из системы 1 в систему 2, затем подтвердите.

0 голосов
/ 15 октября 2010

Скопируйте и вставьте код 1 во временное место.

Обновление 1.

Замените код 1 временным местом.

Подтвердите 1.

Обновление 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...