Лучший контроль версий для одинокого разработчика [закрыто]


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

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

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

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

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

13 67

13 ответов:

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

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

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

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

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

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

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

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

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

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

базар: см.solo use case и базар через 5 минут.

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

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

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

Я всегда рекомендую darcs для этой ситуации (вот мой ответ на аналогичный вопрос) поскольку его пользовательский интерфейс командной строки-это радость для использования, и радость - это то, что я хочу от своей собственной разработки :)

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

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

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

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

вы можете найти ответы на вопрос, который я задал полезно: альтернатива VSS для одного человека шоу (армия одного?):

альтернатива VSS для шоу одного человека (армия одного?)

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

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

в mercurial тег-это именно то. Вы не можете держать отслеживание версий тега, как вы можете в SVN.

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

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

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

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

SourceGear Хранилище бесплатно для одного разработчика и очень хорошо.

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

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