Какую систему управления версиями использовать?

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

Какой лучший инструмент для этого, учитывая, что:

  • Я без особого опыта в системах контроля версий
  • Несколько файлов будут текстовыми текстовыми файлами, но будут также некоторые файлы Libre-Office

Инструмент должен:

  • Будьте легко настраивать, запускать и поддерживать
  • Легко понять параметры конфигурации (какие каталоги отслеживать, как долго, как часто должны быть зафиксированы изменения и т. Д.),
  • В идеале также имеется интерфейс GUI
  • Уметь восстанавливать удаленные файлы

Какой лучший / наиболее широко используемый инструмент подходит для меня?

Я использовал CVS , Subversion , git и несколько коммерческих пакетов. Я просто перенес свою личную VCS из CVS в git (я думал, что это будет сложнее, чем на самом деле, я должен был это сделать давно).

Я бы порекомендовал git. Исходя из того, что вы ищете.

Я ноб без большого опыта в системах контроля версий

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

Лучший способ узнать git – загрузить книгу Pro Git Scott Chacon (бесплатно), создать тестовый репозиторий ( mkdir <project name>; cd <project name>; git init ) и взломать его. На самом деле нет никаких усилий для создания репозитория и не стоит беспокоиться о том, чтобы что-то вставить в тестовый репозиторий, поскольку каждый репозиторий является независимым. Репозиторий можно легко удалить ( cd <project name>; rm -rf .git ).

Несколько файлов будут текстовыми, но будут некоторые файлы Libre-Office

Нет никакого различия с git по типам файлов (ASCII vs binary), однако файлы ASCII оптимальны для просмотра конфликтов различий и слияния.

Будьте легко настраивать, запускать и поддерживать

git можно настроить несколькими способами, все зависит от ваших потребностей. Прежде всего, вам нужно всего лишь установить git ( sudo apt-get install --install-recommends git-core ) и создать репозиторий (показано выше). Если вы работаете с несколькими машинами, вы можете настроить git поверх ssh (это в книге). Еще лучше, поскольку ваши потребности расширяются, вы не теряете того, что уже сделали.

Легко понять параметры конфигурации (какие каталоги отслеживать, как долго, как часто должны быть зафиксированы изменения и т. Д.),

Вы можете иметь один большой репозиторий или разбивать его на отдельные проекты или вплоть до отдельных файлов. Снова создайте репозиторий git и поиграйте с ним, посмотрите, что работает и нет.

В идеале также имеется интерфейс GUI

Есть много git guis, которые специализируются на самых разных задачах. Однако рекомендуется изучить git из командной строки. Для начала вам нужно только изучить несколько команд ( git init , git status git diff , git add , git rm , git commit , git push , git pull ). Также в командной строке вы сможете выполнять задачи, которые вам нужно выполнить. Например: git status

 # On branch master # Your branch is ahead of 'origin/master' by 2 commits. # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: systems/ion/setup.txt # modified: systems/dogstar/teardown.txt # modified: applications/help.html # modified: applications/readme.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # applications/faq.html no changes added to commit (use "git add" and/or "git commit -a") 

Если вам удобнее пользоваться графическим интерфейсом, SmartGit является новичком.

Уметь восстанавливать удаленные файлы

Да, git может восстановить любую версию любого файла, если она была совершена.

Какой лучший / наиболее широко используемый инструмент подходит для меня?

git широко используется. Насколько лучше, это один из лучших, если не самый лучший. Но, будучи лучшим, это больше личное мнение и также основано на ситуации.

Как это звучит, я думаю, что использование контроля версий, такого как git , Mercurial hg , bzr или svn , не идеально подходит для ваших нужд, поскольку они в основном предназначены для исходных файлов, а не для двоичных данных. Таким образом, я хочу добавить здесь дополнительные возможности.

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

Déjà Dup

Использует duplicity качестве своего бэкэнда.

Pros

  • Резервное копирование Ubuntus
  • Очень просто
  • Множество вариантов, по которым вы хотите, чтобы резервные копии

Cons

  • Больше резервного решения, а не контроля версий
  • Некоторое ограниченное управление

Если его еще нет, установите его:

 sudo apt-get install deja-dup 

Вы можете найти его в тире, если вы введете backup .

SpiderOak

Pros

  • Доступны пакеты Ubuntu, добавляет репозиторий в sources.list (автоматическое обновление)
  • Вы можете выбрать любую папку для резервного копирования (в отличие от dropbox)
  • Работает в фоновом режиме, следит за изменениями в этих папках и только загружает изменения (экономит полосу пропускания), это автоматически и сразу
  • Шифрование на стороне клиента (в отличие от dropbox)
  • Признает дубликаты
  • Сжатие файлов на сервере
  • Сохраняет удаленные файлы и более старые версии на своем сервере (если у вас есть свободное место для хранения), если вы явно не удаляете их
  • Хороший графический интерфейс
  • Возможность синхронизации между компьютерами (Linux / Windows / OS X, Мобильные клиенты только для чтения)
  • На основе облака – даже если ваш жесткий диск разбился, у вас все еще есть резервная копия

Cons

  • Облако – требуется подключение к Интернету
  • Не полностью открытый источник
  • Только 2 ГБ (бесстыдный штекер: если вы хотите дополнительный ГБ, вы можете использовать мою ссылку для реферера )

Загрузите его здесь: SpiderOak Download

RDIFF резервного копирования

Pros

  • Возможно локальное или дистанционное резервное копирование
  • Мелкозернистый контроль
  • rsync , только отслеживает изменения
  • Эффективное пространство (неизменные файлы не затронуты)
  • Файл permissios также может быть сохранен
  • Может содержать последние n версий или последние n дней ваших резервных копий

Cons

  • Должен быть запущен cronjob или явно
  • Утилита командной строки (если это не ваша вещь), но есть доступный графический интерфейс: Pybackpack

Установите его через:

 sudo apt-get install rdiff-backup pybackpack 

Снимки BTRFS

Хотя не для слабонервных, есть возможность иметь ваш /home каталог на отдельном разделе BTRFS и создавать моментальные снимки этого времени

Pros

  • Очень эффективное пространство, только измененные файлы снова сохраняются
  • Отслеживает все данные раздела
  • Быстро
  • Смонтируйте любые старые снимки для доступа к предыдущим версиям

Cons

  • BTRFS по-прежнему относительно новый
  • Не новичок дружественным
  • Только в командной строке
  • Требуется некоторое вмешательство в систему
  • Не решение для резервного копирования – если ваш жесткий диск выходит из строя, все версии теряются

На страницах справки Ubuntus есть способ .

Я бы порекомендовал git, потому что:

  1. Он прост в использовании
  2. Вы можете бесплатно разместить его на github
  3. Для окон вы можете использовать github для окон, которые дают вам gui.
  4. Это быстро
  5. Выделение синтаксиса, если вам это нужно на веб-сайте github.
  6. Вы можете запускать его локально, делая его идеальным для личных проектов.

Известными версиями управляющих систем являются CVS, SVN (subversion) и GIT. Не нужно думать о старых CVS, так что это оставляет нас SVN и GIT.

Для вашего ограниченного использования я не думаю, что это действительно важно, что вы выбираете, поэтому мой совет будет заключаться в том, чтобы узнать, кто вы знаете, который использует один из них, и выберите это:

Если вы ищете простоту использования для более сложных вещей (реальный контроль версий для кода и т. Д.), Я бы предложил использовать GIT. В основном «они» говорят, что SVN является обновлением для CVS, а GIT снова является «обновлением» для SVN. Я лично считаю, что преимущества GIT над SVN специально предназначены для нескольких пользователей и нескольких филиалов, поэтому, возможно, это не то, о чем вам следует беспокоиться.

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

Пожалуйста, ознакомьтесь с информацией о них

Я не думаю, что ты хочешь это сделать. Контроль источника – это просто контроль источника. Большинство из них не обрабатывают двоичные файлы (например, изображения, музыку, фильмы и т. Д.).

Кроме того, SCM предоставит вам ряд строк, которые изменили данные. Поэтому каждый раз, когда вы входите в систему или выходите из системы, вы будете менять некоторые данные. Вам придется «объединять» или «совершать» все время. Я почти уверен, что это не то, что вы хотите.

Тем не менее, есть пара действительно хороших инструментов.

Back-in-Time – это потрясающе, и у вас есть просмотрщик diff. Deja Dupe является дефолтом, но я не думаю, что он очень богат. grsync может предоставить вам список файлов с измененной резервной копией. и простой старый rsync – это вариант.

Если вы настаиваете на использовании SCM, тогда я рекомендую git, но размещаюсь локально. Добавьте .gitignore, который исключает все двоичные файлы. Еще лучше, вы можете попробовать просто управлять вашими конфигурационными каталогами. И снова вам придется следить за двоичными файлами.

Повторяя ваш вопрос, я думаю, что вам нужен локальный репозиторий, созданный с помощью такого инструмента, как svn , и поддерживается его интерфейсом, rapidsvn . Это, по-видимому, очень хорошо подходит для вашей цели: локальный репозиторий может находиться на вашем основном жестком диске или на внешнем диске. Важно отметить, что контроль версий лучше всего подходит для исходного кода или текстовых файлов или документов и не подходит для мультимедийных файлов. Dropbox или Ubuntu One будет лучше для такого резервного копирования. Кроме того, вы можете вернуться к предыдущим версиям файлов с dropbox .

Во всяком случае, я кратко покажу, как работает инструмент gui rapidsvn и как svn используется из командной строки.

Во-первых, установите необходимые файлы с помощью

 sudo apt-get install subversion rapidsvn 

Более подробная информация доступна на официальном сайте rapidsvn , хотя важно отметить, что вы все равно должны сначала создать свой svn-репозиторий с помощью командной строки. Убедитесь, что вы находитесь на верхнем уровне своей домашней папки (введите cd чтобы добраться до него, если необходимо) и введите:

 svnadmin create --fs-type fsfs ~/svn 

Затем создайте начальную папку с

 svn mkdir file:///home/mike/svn/folder -m "initial folder" 

Используя руководство по rapidsvn , мы можем загрузить rapidsvn , щелкнуть правой кнопкой мыши по закладкам и добавить ваш репозиторий, щелкнув « Checkout New Working Copy», а затем вы можете управлять своими файлами, как вы хотите, с помощью проверок, импорта и фиксаций.

введите описание изображения здесь

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

Вы можете использовать Codebase .

  1. Это инструмент управления проектами программного обеспечения с быстрым, надежным и безопасным хостингом Git, Mercurial & Subversion, испеченным прямо.
  2. Он может отслеживать весь проект из Интернета и размещать репозитории прямо на серверах.
  3. Он обладает мощными функциями управления проектами с расширенным управлением билетами, каналами активности и контролем данных с настраиваемыми разрешениями, полной функциональностью поиска и API-интерфейсом разработчика

GNU RCS (Revision Control System) управляет несколькими версиями файлов. RCS может хранить, извлекать, регистрировать, идентифицировать и объединять изменения. Это полезно для файлов, которые часто пересматриваются, например, программы, документация, графика и документы. Он может обрабатывать как текстовые, так и двоичные файлы, хотя функциональность сокращена для последней.

Основной пользовательский интерфейс чрезвычайно прост. Новичкам нужно только изучить две команды: ci и co. ci, short для checkin откладывает содержимое файла в архивный файл, называемый RCS-файлом. Файл RCS содержит все изменения конкретного файла. co является коротким для проверки.

Вам нужно отличать ваши изменения? польный список.

Страница проекта: http://savannah.gnu.org/projects/rcs/

Руководство: http://www.gnu.org/software/rcs/manual/rcs.html

«Мне нужно как минимум 10 репутации, чтобы разместить более двух ссылок», поэтому читателю необходимо будет изменить следующее, чтобы перейти к ссылке. Запись автором, которую вы, возможно, захотите прочитать в конце концов:

http://www.gnu.org/software/rcs/tichy-paper.pdf

Хорошее резюме и генеалогия различного программного обеспечения системы контроля версий:

http://en.wikipedia.org/wiki/Revision_Control