Лучший контроль версий для одиночного разработчика
Сейчас я один разработчик; пожалуйста, поделитесь опытом с тем, что является хорошей настройкой VC для одинокого разработчика.
Мои ограничения;
- Я работаю на нескольких машинах и должен поддерживать их синхронизацию.
- Иногда я работаю в автономном режиме
В настоящее время я использую Subversion (только клиент для удаленного сервера), и это работает нормально. Меня интересуют Mercurial и git DVCS, но ни один из их прецедентов не имеет смысла для моей ситуации.
EDIT: я перенес свою активную разработку в Fossil http://www.fossil-scm.org/ после пробной версии с клиентом. Мне очень нравятся функции автосинхронизации моих репозиториев (сокращение случайных вилок), поддержка документации (как вики, так и встроенная/версия), которая поддерживает мою потребность документировать код и проект в разных пространствах, простой в настройке трекер проблем, хороший доступ контроль, скин-интерфейс и полезное сообщество.
Ответы
Ответ 1
Возможно, я предлагаю довольно новый контроль версий под названием fossil.
Это не мой проект, он написан доктором Ричардом Хиппом, тем же парнем, который занимался SQLite. Весь репозиторий - это SQLite файл, поэтому он очень прочный. У вас есть вики и система билетов. Вы можете иметь множество пользователей с различными правами, поэтому вы можете, например, дать своим пользователям право выдавать билеты, но не просматривать исходный код.
Это довольно просто, прямо и работает как распределенная система, что означает, что вы можете клонировать и проверять локально и удаленно.
Более подробную информацию можно найти на http://www.fossil-scm.org/, и если вы посмотрите внимательно, вы увидите, что весь сайт фактически окаменел.
Одна вещь, которая действительно поразила меня окаменелостью, состоит в том, что это всего лишь один файл, вот и все. Вся ископаемая программа довольно мала, но, учитывая, кто автор, это не удивительно.
И так как ваш репозиторий - это файл sqlite, вы просто копируете его, и у вас есть резервная копия.
Ответ 2
Каждый человек, вероятно, скажет вам, что их любимый DVCS является лучшим для вас. Я бы сказал, что Меркуриал - лучший!; -)
Но это дерьмо. Вам определенно нужен DVCS, но попробуйте их всех или, по крайней мере, в основном используемые, и сделайте свой выбор самостоятельно. Выбор DVCS, которым вы знаете гуру, также является разумным выбором, BTW. Я бы рекомендовал попробовать (или прочитать документацию) по крайней мере Mercurial, Git и Bazaar. SVK может иметь желаемую функцию, которую он предназначен для взаимодействия с SVN, но в прошлый раз, когда я проверил, у них были неприятные проблемы с производительностью. Git также имеет некоторый плагин взаимодействия SVN, AFAIK.
Ответ 3
Работа в автономном режиме имеет смысл для Git. Вы можете просматривать всю свою историю, совершать коммиты, делать слияния, создавать ветки, в основном делать все, что связано с вашим репозиторием в автономном режиме. Кроме того, вы можете настроить центральный репозиторий, который является "мастером", то есть вы будете перенаправлять все ваши изменения в этот центральный репозиторий. Таким образом, вы всегда знаете, где находится последний код, но вы также получаете возможность отправлять изменения с одной машины на другую, если вам когда-либо понадобится.
Недавно я преобразовал все мои 80+ репозитории Subversion в Git, и я не оглядывался назад.
Ответ 4
Bazaar: см. случай использования соло и Базар за 5 минут.
Специально для использования в автономном режиме, распределенная система управления версиями - это путь.
Ответ 5
Subversion отлично работает (особенно с TortoiseSVN). Я не думаю, что любой распространенный VC имел бы преимущество в одном сценарии разработчика.
Изменить: я не заметил, что "иногда я работаю в автономном режиме", когда я изначально ответил.
В этом случае, я полагаю, вы должны весить дополнительную сложность DVCS с тем, что он дает вам автономную историю/ревизии.
Ответ 6
Я всегда рекомендую darcs для этой ситуации (здесь мой ответ на аналогичный вопрос), поскольку пользовательский интерфейс командной строки - это радость, и радость - это то, что я хочу от своего собственного развития:)
Git поставляется в комплекте с некоторыми рабочими графическими интерфейсами, но я обнаружил, что он слишком громоздкий по сравнению с darcs, когда я попал в командную строку для использования в личных проектах.
Либо это удовлетворит вашу потребность работать в автономном режиме, и с ними легко синхронизировать изменения.
Ответ 7
Subversion требует доступа к централизованному репозиторию. Если вы работаете в автономном режиме и с нескольких компьютеров, это означает, что вы не можете делать изменения в автономном режиме.
Решение Unix для голой кости будет содержать историю внутри рабочего каталога RCS и синхронизировать рабочий каталог (в том числе история) между различными машинами, используя Unison. Главное предостережение в том, что если вы переключите машины, вам сначала нужно будет их синхронизировать, прежде чем вы начнете совершать новые изменения. Если это проблема, лучше всего взглянуть на настоящий DVCS.
Ответ 8
Вы можете найти ответы на интересующий меня вопрос: альтернатива VSS для шоу одного человека (армия одного?):
Альтернатива VSS для шоу одного человека (армия одного?)
Ответ 9
Вам нужно попробовать DVCS (или то, что я называю peer2peer VCS). Я согласен с nowhereman. Не тратьте время на svn и все мягкие, сделанные вокруг него, чтобы сделать его полезным.
DVCS это больше интуитивно, что старый и устаревший стиль клиент-сервер. SVN не знает, что такое тег, или ветвь. Для Svn все просто копии.
Например: так сложно реализовать тег как синоним номера версии.
В меркуриальном теге есть только это. Вы не можете продолжать отслеживать версии тега, как вы можете в svn.
Прочтите здесь руководство dvcs для начала. Затем вы можете использовать svk, mercurial aka hg или git. Но, пожалуйста, не возвращайтесь вовремя.
Ответ 10
Я большой поклонник распределенного контроля версий. Я играл с git, mercurial и bzr, и теперь я использую git для всех моих проектов. Все три из них отлично подходят для личного использования, потому что так просто создать новый репозиторий на вашем компьютере. Вам не нужно запускать какие-либо серверы.
Вот несколько идей для совместного использования вашего репозитория на нескольких компьютерах. 1) Используйте некоторые размещенные службы, такие как github. Обычно они бесплатны для проектов с открытым исходным кодом и низкой платы за коммерческие проекты. Мы используем github на работе. 2) Используйте Dropbox для создания общего резервного интернет-диска, доступ к которому доступны всем вашим компьютерам. Это бесплатно для менее 2 ГБ. (Если вы работаете в Ubuntu, Ubuntu One - еще одна альтернатива.) Поместите основной репозиторий git в Dropbox и затем поместите локальные репозитории на каждый из ваших компьютеров. (Таким образом, dropbox играет ту же роль, что и github). Он полностью бесплатный, позволяет вам работать в автономном режиме, позволяет вам позже предоставлять общий доступ к репозиторию другим разработчикам и автоматически создавать резервные копии.
Кроме того, если вы действительно хотите использовать SVN, посмотрите на размещенное решение, такое как cvsdude (несмотря на имя, они запускают SVN), а не на вашем собственном сервере. Вы сможете получить доступ к своему коду из любого места, и это будет стоить вам всего ~ 5-10 долларов в месяц.
Ответ 11
SourceGear Vault является бесплатным для одного разработчика и очень хорош.
Ответ 12
Я рекомендую assemblyla.com - они предоставляют бесплатные svn, wiki и trac. Не могу получить лучше!
Ответ 13
Если вы умеете с subversion, я предлагаю вам взглянуть на SVK