Лучший способ “не продвинуть” файлы в Accurev?

Моя компания использует Accurev для управления исходным кодом, и для всех его преимуществ, существует одно простое действие, которое я просто не могу выяснить, как выполнить.

Часто у нас есть кто-то, случайно увеличивают файл слишком далеко в нашей потоковой структуре - от потока "Разработки" до потока "Выпуска", например. Что лучший способ состоит в том, чтобы "не продвинуть" этот файл? То есть, чтобы получить старую версию файла назад в поток "Выпуска" и сохранить новую версию файла в потоке "Разработки", где это принадлежит?

Просто выполнение "Возвращается к Поддержанный" или другому Возвращающееся, действие с файлом в потоке Выпуска или заставит старую версию файла распространять вниз в Разработку или заставит файл исчезнуть полностью.

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

Я также рассмотрел перемещение файлов к потоку "возвышенности", возвращению и затем перекрестному продвижению их к более низкому потоку снова. Это кажется действительно топорным.

Кажется, что Accurev достаточно неясен, что Google не является никакой справкой, таким образом, я обращаюсь к хорошим людям StackOverflow для справки - кто-либо выяснил способ "Accurevy" выполнить это?

27
задан Luke Rinard 9 March 2010 в 02:47
поделиться

2 ответа

  1. Перейдите в основной браузер потоков

  2. Щелкните правой кнопкой мыши на потоке, в который вы случайно переместились, и выберите "Показать историю"

  3. В браузере истории щелкните правой кнопкой мыши на потоке, который вы хотите вернуть, и выберите "Вернуть"

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

  5. Теперь в вашем рабочем пространстве файлы должны вернуться в состояние, предшествовавшее случайному продвижению. Теперь вы можете переместить их обратно в поток выше. Теперь поток будет содержать версии файлов, из которых удалено случайное продвижение.

  6. Вы можете заметить, что ваше рабочее пространство больше не содержит ни одного из рассматриваемых файлов, но, предположительно, вы хотите вернуть файлы, которые вы случайно продвинули, в ваше рабочее пространство? Если это так, вернитесь в браузер истории потока, щелкните правой кнопкой мыши на только что сделанном продвижении (продвижении с отмененными правками) и выберите 'Revert'. Затем вы можете выбрать то же рабочее пространство в качестве места назначения.

  7. Файлы, вероятно, появятся в группе по умолчанию для вашего рабочего пространства и будут конфликтовать, поэтому просто выберите их и выполните слияние. Скорее всего, здесь вы захотите принять тривиальные слияния.

После слияния файлов они должны появиться в фильтре ожидающих обработки. Теперь у вас должны быть те же файлы в ожидании, что и до случайного повышения, а поток выше должен иметь то же содержимое в файле, что и до повышения.

Вот так все просто (ирония намеренная).

Стив

29
ответ дан 28 November 2019 в 05:12
поделиться

Дружественная к аудиту, только для приложений природа accurev на самом деле означает, что возврат изменения означает повторное применение нужной вам версии. Интуитивно понятно, что вы хотите вернуться назад "на один шаг". Но в системе, работающей только с приложениями, это на самом деле означает переход вперед и повторное применение старой версии. Таким образом, возврат, естественно, является процессом "2 шага вперед", а не "1 шаг назад".

В большинстве ситуаций возврат происходит не так часто, поэтому глобальная ценность 'append only' перевешивает рецепт возврата (IMO).

В качестве универсального последовательного решения, наиболее точным подходом (как вы упомянули) является возврат транзакции продвижения. Просмотрите историю потока, найдите нежелательное продвижение, RClick > Revert. Вам понадобится дочернее рабочее пространство... почему? Потому что для выполнения возврата может потребоваться разгруппировка. Подумайте о возврате интерстициального продвижения... это все равно что вынуть салат из сэндвича и соединить верхнюю и нижнюю булочки вместе. Только в системе, основанной на txn, этот возврат может также включать помидоры, горчицу и соль сельдерея и быть единым "отменой". Поэтому вам нужно будет сохранить изменения слияния, если таковое существует. В любом случае, даже если вы просто отменяете последнее продвижение, просто верните изменения в рабочую область, сделайте [случайное] слияние и продвиньте все вверх.

Короче говоря. Отмена изменений в любой CM-системе сродни хирургической операции, поэтому вам, вероятно, нужны соответствующие люди.

Делаю шаг назад. Я склонен использовать преимущества потоков accurev для проверки кода раньше, чем часто, и продвигаюсь по цепочке только после проверки. Таким образом, вероятность возврата уменьшается по мере продвижения вверх.

12
ответ дан 28 November 2019 в 05:12
поделиться