Возврат файла и его фиксация снова не показывает изменений
У меня есть файл, который в настоящее время находится в ревизии X. Я хотел бы вернуть его в ревизию X-1 и зафиксировать его как X-1. Однако, когда я получаю предварительный просмотр коммита для X-1, SVN (в данном случае я использую Tortoise) говорит, что изменений нет. Как это может быть? И как мне зафиксировать возвращенный файл?
1 ответ
Я не уверен, что читаю слишком много в формулировке вашего вопроса, но у вас может быть неправильное понимание того, как работает SVN, а также что такое команда "вернуть".
Во-первых, команда "вернуться" предназначена только для того, чтобы избавиться от изменений, которые вы еще не совершили. Отменяет любые изменения, которые вы видите с svn status
или TortoiseSVN "проверить наличие изменений". Ничего более.
Во-вторых, невозможно зафиксировать ревизию меньше, чем текущая ревизия. В SVN файлы не имеют ревизий. У ревизий есть файлы. И номера ревизий всегда идут вверх, а не вниз. Думайте о пересмотре в SVN как о снимке во времени ВСЕХ в хранилище. Технически, вы должны сказать "файл foo, как он существовал в ревизии 123", а не "ревизия 123 файла foo". Последнее не совсем правильно и может сломаться в некоторых ситуациях.
Наконец, похоже, вы пытаетесь удалить некоторые изменения в файле. Вы делаете это путем создания НОВОЙ ревизии файла, используя концепцию "обратного слияния". Из командной строки вы выполняете слияние файла, указывая отрицательную версию или диапазон обратных версий, чтобы отменить изменения в этих версиях. Затем вы можете зафиксировать получение новой ревизии, содержащей ваш файл, с обратными изменениями. TortoiseSVN делает это легко: просто откройте диалоговое окно "Показать журнал", щелкните правой кнопкой мыши ревизию, которую вы хотите отменить, и выберите "отменить изменения из этой ревизии". Тогда вам нужно будет совершить как и раньше.
В любом случае, выполните этот шаг "обратного слияния" из рабочей копии, указывающей на HEAD. Ваша новая ревизия всегда будет идти после HEAD, так как именно так работает SVN.