Как заставить TortoiseSVN всегда замораживать svn: внешние для тегов
Возможно ли это с черепахойSVN?:
Всегда замораживать svn:externals
для тегов
сценарий - наша соединительная линия всегда будет использовать ревизию "HEAD" для внешних, однако, когда мы создаем "теги", мы хотели бы, чтобы у них был набор ревизий для внешних, чтобы правильно "заморозить" их в определенный момент времени.
Обновление
Спасибо всем за ваши отзывы/информацию.
Так как я не мог найти ничего, что бы полностью соответствовало нашим потребностям (попробовал smartsvn
и svncopy.pl
), я сделал консольное приложение, которое до сих пор прошло все наши тестовые примеры.
Обзор высокого уровня: приложение принимает URL-адрес репозитория, затем ищет все внешние элементы и добавляет для них последнюю модификацию фиксации - я делаю svn info
и получаю "фиксацию изменений".
Приложение работает как с файлами, так и с файлами.
Вот исходный код и полные файлы настроек:
http://svnxf.codeplex.com/
Ответы
Ответ 1
Я нашел это сообщение сегодня, когда искал решение той же проблемы. В конце концов я обнаружил, что TortoiseSVN в своей последней версии поддерживает эту желаемую функциональность: Замечания по выпуску TortoiseSVN 1.7.
Надеюсь, это поможет другим, кто найдет этот пост при исследовании той же проблемы.
Ответ 2
Рекомендуемая передовая практика - всегда использовать явную ревизию (не HEAD) во внешних определениях. Из документа :
Вы должны серьезно рассмотреть возможность использования явных номеров ревизий во всех ваших внешних определения. Это означает, что вы решаете, когда выложить другой снимок внешней информации и точно, какой снимок можно вытащить. & Hellip; Для программного обеспечения проектов, это может быть разница между успешной и неудачной сборкой более старых моментальный снимок вашей сложной кодовой базы.
Чтобы прямо ответить на ваш вопрос: нет, невозможно автоматически изменять определения внешних символов при пометке с помощью TortoiseSVN. Это нужно сделать вручную при создании тега.
Ответ 3
Вы можете попробовать svncopy.pl(найти его в google)
Это perl script, которые отвечают на ваши потребности.
Ответ 4
Вам следует попробовать SmartSVN, который при необходимости может преобразовывать HEAD-externals в фиксированные внешние элементы при создании тегов или ветвей. Вы можете найти эту опцию (External Revisions: (o) Leave as is() Исправить все() Fix, за исключением ниже) в нижней части диалоговых окон Add Tag/Add Branch.
Ответ 5
Я бы добавил Майкла.
Дополнительно к рекомендации по документации SVN:
- Использование нефиксированных изменений в svn: externals затрудняет обновление рабочей копии до указанной ревизии (например, во время проверки ошибок).
- Журнал каталогов с svn: externals будет неполным, что может предоставить ложную информацию об изменениях между версиями
- Ветвление и слияние могут усложниться
Как правило, SVN, по-видимому, сконструирован в основном для кода, содержащегося в общем каталоге. svn: внешние ссылки (даже по имени) добавляются для ссылок на внешние репозитории. Поэтому я ожидал бы других проблем, упомянутых выше.
По моему опыту, необходимость использования svn: externals для нефиксированных изменений часто происходит из-за неправильной структуры в репозитории.
Может быть, это не ваш случай, я просто советую учитывать эти моменты...
Ответ 6
Update
Спасибо всем за ваши отзывы/информацию.
Так как я не мог найти ничего, что бы полностью соответствовало нашим потребностям (пробовал smartsvn и svncopy.pl), я сделал консольное приложение, которое до сих пор прошло все наши тестовые примеры.
Обзор высокого уровня: приложение принимает URL-адрес репозитория, затем ищет все внешние элементы и добавляет последнюю версию фиксации для них - я делаю "информацию svn" и получаю "фиксацию изменений".
Приложение работает как с файлами, так и с файлами.
Вот исходный код и полные файлы настроек: http://svnxf.codeplex.com/
Ответ 7
Вы можете указать ревизию во внешнем виде:
third-party/skins -r148 http://svn.example.com/skinproj
См. svnbook
Ответ 8
Я знаю, что это не для tortoiseSVN, но если вы используете eclipse с subversive, вы можете щелкнуть правой кнопкой мыши проект и выбрать team- > tag. Subversive замораживает внешние значения по умолчанию и довольно хорошо форматирует свойства.