2008-09-26 2 views
67

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

Мои ограничения;

  • Я работаю на нескольких машинах и должны держать их синхронизируются
  • Иногда я работать в автономном режиме

Я в настоящее время с помощью Subversion (только клиент на удаленном сервере), и это работает нормально. Меня интересуют Mercurial и git DVCS, но ни один из их прецедентов не имеет смысла для моей ситуации.

EDIT: Я перенес свою активную разработку в Fossil http://www.fossil-scm.org/ после пробной версии с клиентом. Мне очень нравятся функции автосинхронизации моих репозиториев (сокращение случайных вилок), поддержка документации (как вики, так и встроенная/версия), которая поддерживает мою потребность документировать код и проект в разных пространствах, простой в настройке трекер проблем, хороший доступ контроль, скин-интерфейс и полезное сообщество.

+1

Этот вопрос помог http://stackoverflow.com/questions/97850/version-control-on-a-2gb-usb-drive#97955 – Stephen

+0

Мне не нравится VSS AT ALL. Тем не менее, у него есть одно преимущество, которое другие не делают: его файловая система основана. Итак, для разработчиков ONE, которые хотят синхронизироваться в разных местах, размещение VSS-db в папке mesh.com - это быстрый способ встать и запустить – Will

+0

. Я также очень рад. Ископаемое работает или компилируется во всем, что я пытался dev on: xp, vista, ppc macs, intel macs и Windows 7. – Stephen

ответ

43

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

Это не мой проект, он написан доктором Ричардом Хиппом, тем же парнем, который делал SQLite. Весь репозиторий - это SQLite-файл, поэтому он очень прочный. У вас есть вики и система билетов. Вы можете иметь множество пользователей с различными правами, поэтому вы можете, например, дать своим пользователям право выдавать билеты, но не просматривать исходный код.

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

Более подробную информацию можно найти на странице http://www.fossil-scm.org/, и если вы посмотрите внимательно, вы увидите, что весь сайт фактически окаменелости.

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

А поскольку ваш репозиторий представляет собой файл sqlite, вы просто копируете его, и у вас есть резервная копия.

+1

Возможно, вас заинтересует [Monotone] (http://www.monotone.ca), который является другим DVCS, который использует SQLite в качестве внутреннего хранилища. По собственному опыту я должен согласиться с тем, что очень приятно так легко копировать или копировать весь репозиторий. –

+3

Ископаемое является удивительным !!! Я никогда раньше не видел такого приложения, такую ​​простоту и гибкость !!! – zengr

7

Subversion отлично работает (особенно с TortoiseSVN). Я не думаю, что любой распространенный VC имел бы преимущество в одном сценарии разработчика.

Редактировать: Я не заметил, что «иногда я работаю в автономном режиме», когда я изначально ответил. В этом случае, я полагаю, вы должны весить дополнительную сложность DVCS с тем, что он дает вам автономную историю/ревизии.

+0

Меня интересует, как * вы * * используете * svn. – Stephen

+1

git фантастически прост в настройке для одного человека, вам нужен только один каталог и один набор инструментов. Не требуется сервер. –

+2

Даже без работы в автономном режиме, DVCS действительно имеет сильные преимущества для централизованных. Создание репо намного проще, так же как параллельно работать на нескольких ветвях. –

0

SourceGear Vault является бесплатным для одного разработчика и является очень хорошим.

+0

Почему это хорошо для одинокого разработчика? – Stephen

+2

Отлично. Вы действительно выбрали бы VCS, который больше не сможете использовать, когда кто-то готов помочь вам ?! Кажется сумасшедшим для меня. –

30

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

Недавно я преобразовал все мои хранилища Subversion 80+ в Git, и я не оглядывался назад.

+0

Аналогичным образом, недавно мигрировал все мои частные cvs repos в git. идеально подходит для использования в любом локальном каталоге, который вы можете решить для версии, или нажимайте свои репозиции до github.com или assemblyla.com для использования на многих машинах. – tardate

+0

откомандирование на git, фантастическое и мощное. – Valentin

+0

Согласен ... Я сохраняю центральную копию моего источника на GitHub и нажимаю резервную копию своего репо на USB-ключ –

3

Я всегда рекомендую darcs для данной ситуации (here's my answer to a similar question) в качестве своего командной строки пользовательского интерфейса является радость, чтобы использовать и радость, что я хочу от моего собственного развития :)

Git поставляется в комплекте с некоторой работоспособной ГПИ, но Я обнаружил, что это слишком громоздко по сравнению с darcs, когда я попал в командную строку для использования в личных проектах.

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

0

Я рекомендую assemblyla.com - они предоставляют бесплатный svn, wiki и trac. Не могу получить лучше!

+0

они также поддерживают git – tardate

2

Subversion требует доступа к централизованному хранилищу. Если вы работаете в автономном режиме и с нескольких компьютеров, это означает, что вы не можете делать изменения в автономном режиме.

Решение для решения голой кости в Unix должно состоять в том, чтобы сохранить историю внутри рабочего каталога с помощью RCS и синхронизировать рабочий каталог (включая историю) между различными машинами, используя Unison.Главное предостережение в том, что если вы переключите машины, вам сначала нужно будет их синхронизировать, прежде чем вы начнете совершать новые изменения. Если это проблема, лучше всего взглянуть на настоящий DVCS.

+0

крутой отзыв! Я не знал об унисон. – Stephen

0

Если вы comfortabel с подрывной деятельностью, я предлагаю вам взглянуть на SVK

49

Каждый человек, вероятно, сказать вам, что их любимый DVCS является лучшим для вас. Я бы сказал, что Меркуриал - лучший! ;-)

Но это дерьмо. Вам определенно нужен DVCS, но попробуйте их всех или, по крайней мере, в основном используемые, и сделайте свой выбор самостоятельно. Выбор DVCS, которым вы знаете гуру, также является разумным выбором, BTW. Я бы рекомендовал попробовать (или прочитать документацию) по крайней мере Mercurial, Git и Bazaar. SVK может иметь желаемую особенность, что он предназначен для взаимодействия с SVN, но в прошлый раз, когда я проверил, у них были неприятные проблемы с производительностью. Git также имеет некоторый плагин взаимодействия SVN, AFAIK.

+0

Я знаю, что у него больше всего голосов. Но мне нравится это. – Stephen

+0

У Hg также есть неофициальный пакет под названием «hgsvn» для взаимодействия с сервером svn. Это не так зрело, как git, хотя, например, он не смог клонировать наше репо - переключился на git и никогда не оглядывался назад. –

+0

@Greg: попробуйте hgsubversion вместо hgsvn: http://bitbucket.org/durin42/hgsubversion/ Это двухсторонний мост между Mercurial и Subversion. –

2

Вы должны попробовать DVCS (или то, что я вызов peer2peer VCS). Я согласен с nowhereman. Не тратьте время на svn и все мягкие, сделанные вокруг него, чтобы сделать его полезным. DVCS более интуитивно, чем старый и устаревший стиль клиент-сервер. SVN не знает, что такое тег, или ветвь. Для Svn все просто копии.

Например: так важно реализовать тег в качестве синонима номера версии.

В меркуриальном теге есть только это. Вы не можете продолжать отслеживать версии тега, как вы можете в svn.

Читайте здесь dvcs guide, чтобы начать. Затем вы можете использовать svk, mercurial aka hg или git. Но, пожалуйста, не возвращайтесь вовремя.

+0

Вы должны перефразировать свой ответ, пожалуйста! Я был удивлен, увидев, что «SVN не знает, что такое тег или ветвь». Это дало мне представление о том, что SVN не может делать ветки или теги; это те вещи, которые я уже сделал для себя! Дело в том, что даже если SVN не может различать копии и ветки или теги, это позволяет вам их делать! – sergiol

1

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

Вот несколько идей для обмена репозиторием на нескольких компьютерах. 1) Используйте некоторые размещенные службы, такие как github. Обычно они бесплатны для проектов с открытым исходным кодом и низкой платы за коммерческие проекты. Мы используем github на работе. 2) Используйте Dropbox для создания общего резервного интернет-диска, доступ к которому доступны всем вашим компьютерам. Это бесплатно для менее 2 ГБ. (Если вы работаете в Ubuntu, Ubuntu One - еще одна альтернатива.) Поместите свой основной репозиторий git в dropbox и затем поместите локальные репозитории на каждый из ваших компьютеров. (Таким образом, dropbox играет ту же роль, что и github.) Это совершенно бесплатно, позволяет вам работать в автономном режиме, позволяет вам позже поделиться репозиторием с другими разработчиками, если вам нужно, и оно будет автоматически создано.

Кроме того, если вы действительно хотите использовать SVN, посмотрите на размещенное решение, такое как cvsdude (несмотря на имя, они запускают SVN), а не на запуск собственного сервера. Вы сможете получить доступ к своему коду из любого места, и это будет стоить вам всего ~ 5-10 долларов в месяц.

+2

Bitbucket.org также интересен. Он предоставляет бесплатные неограниченные общедоступные * и частные * учетные записи для Mercurial и Git (для до 5 коммиттеров). У этого есть wiki и встроенный трекер треков, и имеет мощный интерфейс, очень похожий на GitHub. Это стало моим хранилищем для личного использования. –

Смежные вопросы