2008-09-22 8 views
4

Просто небольшая SVN «проблема» здесь.SVN Versioning

установки я мой собственный сервер SVN http://www.codinghorror.com/blog/archives/001093.html

Теперь я сделал респ, в котором все мои проекты будут идти.

Теперь я проверил выписку в папке «Проекты».

Теперь, если я делаю проект и проверяю его, этот проект является ревизией 1. Если я делаю второй проект и проверяю его, этот проект находится в ревизии 2. Таким образом, если я внес изменения в Project 1 , этот проект будет представлен в редакции 3.

Я бы действительно хотел, чтобы каждый проект имел свою собственную схему пересмотра. Как мне это сделать?

ответ

1

Вам нужно создать хранилища в папке «Проекты», а когда вы выполните первоначальную проверку, проверьте «???/projects/repo1» .. это будет держать рабочие копии отдельно на вашем компьютере, и вы будете полностью/частично проверять/отключать друг от друга.

+0

Это не совсем правильно, вопрос состоял в том, чтобы сохранить изменения для разных проектов отдельно, ваш пример не будет делать этого – Palmin 2008-09-23 20:25:37

15

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

From Here

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

1

Вы должны создать отдельный репозиторий для каждого проекта. Это вообще хорошая идея, так что никуда не денусь :)

+0

Я не согласен с не минусов. Из http://svnbook.red-bean.com/en/1.0/ch05s04.html вы дублируете (или более) техническое обслуживание, и любой «общий» код трудно поддерживать. Следует подумать над тем, чтобы выбрать один из способов. – 2008-09-22 21:02:00

0

Они обсуждают его немного лучше здесь: http://www.nabble.com/Multiple-Repositories-in-a-Windows-Server-td15014106.html

В принципе вы можете сделать:

svnserve -r /path/to/repository 

svn://hostname/ 

или

svnserve -r /path/to/directory/containing/many/repositories 

svn://hostname/repositoryname/ 

С другой стороны, вы могли бы пойти server'less и просто провести индивидуальные репозитории на локальном или сетевом диске.

1

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

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

Если у вас есть проблема с концепцией одного возрастающего количества версий подрывной версии для нескольких проектов, рассмотрите ли вы ситуацию, когда вы введете один из ваших проектов?(помня, что нормальная ветвь также имеет глобальный увеличивающий номер пересмотра subversion)

Похоже, вы пытаетесь использовать номер ревизии репозитория как часть номера сборки или выпуска? Если это так, возможно, вы могли бы рассмотреть возможность внедрения другой схемы нумерации сборки для вашего проекта/s, которая затем может быть связана с номером ревизии subversion.

Такая ассоциация может быть создана с использованием соглашения о создании ветвей с номером выпуска и помещением ревизии subversion в комментарий для ветви.

Некоторые схемы были обсуждены в this вопрос