Контрольные точки в svn

Я использую svn с моим кодом. Я хочу спросить, есть ли способ сделать контрольные точки с помощью svn?

У меня есть проверка кода на локальном диске. Сделав первую часть изменений, я вижу, что все в порядке. После того, как вторая часть кода изменений нарушена. Я хочу вернуться к пункту после первой части изменений и до внесения изменений после. Итак, теперь я делаю файл исправления (с svn diff) и возвращаю весь код, а затем исправляю его. Мне интересно, есть ли команда svn чтобы сделать контрольную точку после первой части изменений, а затем просто вернуться к этой контрольной точке с помощью одной команды svn. Я не хочу совершать свои изменения после первой части изменений.

+1
источник поделиться
2 ответа

Я считаю, что правильная терминология - это svn save points. Это постоянный дизайн, но, насколько я знаю, он еще не отправлен.

В любом случае, я также искал эту функциональность, так как моя компания использует svn, и я решил ее, настроив git на svn. Используя эту архитектуру, у вас есть локальный репозиторий git, который "разговаривает" с удаленным svn-репо, и, таким образом, вы можете воспользоваться преимуществами git (дешевое разветвление, stash и т.д.), В то же время используя svn на практике.

Эта "контрольная точка", которую вы хотите реализовать, может быть выполнена с помощью git stash или путем создания новой ветки (очень простая и распространенная практика в git) и использование коммитов в качестве ваших контрольных точек (конечно, эти коммиты не будут отображаться в svn - что вы хотите, если я получу это правильно)

+1
источник

Традиционным способом сделать это с помощью SVN будет:

  1. Создайте новую ветвь SVN, которую вы будете использовать как свою собственную песочницу (используя "svn copy").

  2. Переключите локальную проверку в ветвь SVN, которую вы только что создали (с помощью "svn switch", за которым следует URL-адрес вновь созданной ветки)

  3. Начните вносить изменения. Всякий раз, когда вы хотите создать "контрольную точку", "svn commit". Эта фиксация будет фиксировать изменения только в вашей частной ветке, так что никто их не увидит (если они специально не намерены искать вашу ветку, конечно).

  4. Если после внесения некоторых изменений вы решите, что все они не так, и вы хотите вернуться к своей последней проверенной контрольной точке, "svn --recursive вернется". на верхнем уровне вашей папки проверки SVN вернет ваш SVN-запрос обратно в состояние вашего последнего коммита.

  5. Если вы хотите пойти дальше и вернуть совершенные изменения, вы можете сделать это через "svn merge -rXXXX: YYYY", где XXXX и YYYY - это номер версии SVN изменения, которое вы хотите вернуть, а YYYY - номер один меньше, чем это число.

  6. Когда вы закончите делать изменения и довольны результатами, и вы внесете все свои локальные изменения в ветку, вы, вероятно, захотите объединить все ваши изменения ветвей обратно в багажник, чтобы другие люди могли видеть/используй их.

После этого вы можете продолжить работу в багажнике, если хотите, или вы можете создать еще одну частную ветку, если хотите, и повторите этот процесс еще раз.

+1
источник

Посмотрите другие вопросы по метке или Задайте вопрос