Управление версиями в SVN

Я использую измененный псевдоним довольно часто. Чтобы установить его:

git config --global alias.changed 'show --pretty="format:" --name-only'

, затем:

git changed (lists files modified in last commit)   
git changed bAda55 (lists files modified in this commit)
git changed bAda55..ff0021 (lists files modified between those commits)

Аналогичные команды, которые могут быть полезны:

git log --name-status --oneline (very similar, but shows what actually happened M/C/D)
git show --name-only
17
задан Philip Morton 20 February 2009 в 13:10
поделиться

12 ответов

Richard, теги очень близки, но интересно, не могло ли то, в чем Вы нуждаетесь, быть специализированным ответвлением выпуска.

Для этого, сделайте ответвление из соединительной линии, вначале назвал что-то как 'Выпуск'. Затем работа над соединительной линией как нормальная, когда Вы готовы к выпуску, объединяет Ваши изменения от соединительной линии в 'Выпуск'. Это - единственный способ, которым необходимо изменить выпуск.

можно затем отметить от выпуска, если Вы хотите, не необходимых 100%.

, Но то, что это даст Вам, является ответвлением, которое имеет подмножество изменений соединительной линии в нем. Узнайте свои даты выпуска с:

svn log --stop-on-copy svn://server/project/branches/release

Это даст Вам список дат выпуска (с изменениями). Для наблюдения, что находится в каждом выпуске, сделайте:

svn mergeinfo --show-revs=merged "svn://server/project/trunk" "svn://server/project/branches/release"@<release revision>

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

21
ответ дан 30 November 2019 в 10:16
поделиться

Не как таковой. Принятый способ сделать выпуски в SVN должны иметь каталог "тегов", где Ваш источник выпуска копируется для каждого конкретного выпуска. Например /tags/release-0.11... Нет ничего препятствующего тому, чтобы Вы смешали с tags, каталогу случайно, из поля, но некоторых людей нравится настраивать рычаги перед фиксацией для предотвращения случайных фиксаций к тегам версии.

Вот достойная статья , описывающая процесс выпуска в SVN.

26
ответ дан 30 November 2019 в 10:16
поделиться

Копирование соединительной линии к пути тегов в репозитории SVN является способом достигнуть этого. Это - копия svn, не заканчивается с дубликатами файлов на сервере репозитория SVN. У Вас только есть дубликаты файлов локально при выборе к контролю пути svn кроме соединительной линии. Фиксации на тех рабочих копиях затем возвращаются к пути svn, из которого они были проверены.

Это - по существу определенная стандартная реализация ветвления в svn. Смотрите на книгу svn онлайн для получения дополнительной информации.

4
ответ дан 30 November 2019 в 10:16
поделиться

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

Вы исследовали Черепаху график пересмотра SVN? Если Вы отмечаете каждый выпуск (на который, поскольку указали другие, не включает копирование файлов, или на сервере или на рабочей станции), то Вы видите все изменения в хронологическом порядке с тегами, указывающими на фактические выпуски. Вы можете разность между выпусками и/или соединительной линией hilighting эти два изменения, Вы интересуетесь и разность выбора из контекстного меню.

6
ответ дан 30 November 2019 в 10:16
поделиться

Смотрите на темы Книги SVN:

Теги и Просмотр Репозитория

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

при метках каждого выпуска, затем Вы видите теги путем просмотра репозитория. Вышеупомянутые ссылки говорят непосредственно об инструментах командной строки, но существуют также инструменты GUI как TortoiseSVN в Windows. Можно получить историю, сделать сравнения, и т.д.

Для наблюдения изменений, внесенных в выпуске, Вы просто показали бы журнал соединительной линии от пересмотра тега, который Вы хотите назад к пересмотру предыдущего тега +1. Это походит на дополнительную работу, но это довольно просто, после того как Вы привыкаете к нему.

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

1
ответ дан 30 November 2019 в 10:16
поделиться

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

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

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

Для полного раскрытия, существуют другие инструменты, чем Jira как Bugzilla, Trac, IBM Рациональный Джаз, и т.д. который может сделать то же самое с Подверсией, которую Jira делает хотя с переменными уровнями функциональности.

2
ответ дан 30 November 2019 в 10:16
поделиться

Маркером было бы сообщение о фиксации, записанное, когда тег для выпуска сделан (svn копируют в теги/). По крайней мере это - наиболее распространенный используемый метод.

3
ответ дан 30 November 2019 в 10:16
поделиться

+1 для использования сообщения о фиксации.

Для проекта я создал пользователя SVN, названного сборкой. Машина сборки использовала этот вход в систему для SVN. Каждый раз, когда машина/процесс сборки сделала сборку, она также обновила файл, и сообщение о фиксации SVN было идентификатором версии/другой для сборки.

Затем мы также создали тег для той сборки. Этот путь в соединительной линии, мы видели сборки, когда/где они вкраплены другими изменениями.

, Таким образом, мое предложение (самый простой способ сделать это) состоит в том, чтобы создать другого файлы, названные сборкой (или что-либо еще, что Вы хотите), и добавьте к этому или просто измените его в своем сценарии/процессе сборки и затем перепроверьте его в/фиксировать нем с названием версии выпуска как сообщение о фиксации. Простой. Это затем обнаружится в Ваших запросах истории.

1
ответ дан 30 November 2019 в 10:16
поделиться

Кроме того, если Вы знаете, какие изменения Вы сравниваете, можно сделать разность SVN, и Вы будете видеть, какие файлы изменились и как между этими двумя изменениями.

Не уверенный в Вашей общей установке, но ком-то mentionned TortoiseSVN. Это - окончательно хорошее начало. Я лично использую Eclipse с subclipse плагином, и он позволяет мне выполнять diffs в графической среде между изменениями. Пока у Вас есть свой проект Ваш, может сравнить любой пересмотр любого другого пересмотра и как таковой, у Вас не должно быть всего вида дублирования файла.

кроме того, мы обычно настраиваем три каталога в каждом репозитории. Ответвления, Соединительная линия и Теги. Как кто-то отметил, Теги используются специально для идентификации выпуска.

0
ответ дан 30 November 2019 в 10:16
поделиться

Я встречаюсь с той же проблемой и способом, которым я попытался зафиксировать ее для своей компании, должен иметь папку 'выпуска' в соединительной линии, эта папка только содержит фактический исполняемый файл или что потребности быть частью развертывания.

я создаю новую папку для каждого выпуска, запускающегося с '1.0.0.0' в папке 'выпуска', и также отмечаю код с тем же именем папки выпуска т.е. 1.0.0.0 в случае.

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

0
ответ дан 30 November 2019 в 10:16
поделиться

К вашему сведению

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

-2
ответ дан 30 November 2019 в 10:16
поделиться

Если вы следуете обычному svn-соглашению «теги / ветки / ствол» в корне вашего хранилища разработчики, как правило, не хотят проверять весь репозиторий, только из ствола вниз.

0
ответ дан 30 November 2019 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: