ископаемое:добавляйте файлы в существующий репозиторий, нужно ли мне сначала открывать?

StackOverflow https://stackoverflow.com//questions/22051797

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хочу управлять версиями каталога, назовем его "проект", и хранить файлы ископаемых внутри другого каталога с именем "ископаемые". Я успешно создал репозиторий "project.fsl", добавил файлы моего проекта, зафиксировал и закрыл.Моя проблема заключается в понимании того, как сделать следующий шаг.

Вот что я делаю, следуя fossilbook предложения.

$ cd project
$ fossil new ../fossils/project.fsl
$ fossil open ../fossils/project.fsl
$ fossil add .
$ fossil ci -m "first commit"
$ fossil close project.fsl

Сейчас я поработал над своим проектом, отредактировал некоторые файлы, удалил некоторые файлы, создал некоторые файлы, переименовал некоторые файлы.Я бы хотел добавить текущее состояние проекта в репозиторий.Как мне это сделать?

Основываясь на том, что я прочитал в документе, у меня сложилось впечатление, что я должен был сначала открыть репозиторий, затем добавить файлы, затем зафиксировать.Если я не открою репозиторий, я получу Not within an open checkout. Сообщение.Но если я open fossil хочет перезаписать мой каталог старыми файлами.(И если я открою изнутри fossils каталог, я получаю "распакованную" версию моего проекта, скопированную в каталог fossils, тоже не то, что я хочу)

$ cd project
$ fossil open ../fossils/project.fsl

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

Я хочу добавить свои изменения в репозиторий, так что теперь, когда project.fsl является open, Я пробую это:

$ fossil add .
 ADDED  Slides/tmp.tex

$ fossil commit -m "no idea what I'm doing, this will not end well"
 would fork.  "update" first or use --allow-fork.

$ fossil close
 there are unsaved changes in the current checkout

На этом этапе я удаляю все скрытые файлы с именами .fslckout .fossil и попробуйте еще раз, с такими же неутешительными результатами.

Чтобы быть совершенно откровенным, мой единственный интерес в fossil ведет историю моего проекта.У меня нет соавторов, и я не планирую делать fossil diff или fossil ui или что-нибудь в этом роде до того момента, которого, я надеюсь, никогда не случится, когда мне нужно будет покопаться в истории моего проекта.

Редактировать. Я полный новичок.Я не уверен, что понимаю значение checkout, manifest, leaf, и т.д.так что мне очень трудно извлечь что-либо из руководства, несмотря на бесчисленные часы, потраченные на попытки.Я не очень понимаю эту страницу на fossil open: http://fossil-scm.org/fossil/help/open

Это было полезно?

Решение

fossil open является это правильный поступок.В вашем случае это fossil close в этом не было необходимости.

На этом этапе вам следует сделать fossil open ../fossils/project.fsl --keep чтобы открыть ваше репозиторий, сохранив при этом все изменения.

В Открыть команда помечает текущий каталог как рабочий каталог (в терминах ископаемых, a Оформить покупку).Я рекомендую вам не закрывать его до тех пор, пока вам не понадобится переместить либо ваше репозиторий, либо сам рабочий каталог.Лично это происходит только тогда, когда я перехожу на другой компьютер.

Чтобы ископаемые идентифицировали все изменения, просто выполните fossil addremove;затем fossil добавит все новые файлы и удалит все удаленные файлы, чтобы репозиторий снова соответствовал рабочему каталогу.Конечно, вам все равно придется зафиксировать изменения после этого.

Примечание это addremove делает не автоматическое распознавание переименований файлов!Если вы переименовали файлы, вы должны сообщить Fossil об этом для каждого файла, используя fossil rename команда, до того , как вы выполняете addremove команда.Конечно, если вы не возражаете против просмотра истории редактирования определенных файлов, вы можете пропустить это, и пусть fossil думает, что один файл был удален, а вместо него добавлен другой.

Другие советы

Скромная Церемония и Легкое Начало

Для одного разработчика жизненный цикл хранилища ископаемых может быть очень простым:

  1. fossil new чтобы создать сам файл репозитория.
  2. fossil open чтобы создать первое (или, возможно, единственное) активное рабочее пространство
  3. fossil add, fossil remove, fossil rename и fossil addremove чтобы держать fossil в курсе того, какие файлы отслеживать.
  4. fossil commit для фиксации изменений в репозитории

где шаги 3 и 4 повторяются по мере необходимости на протяжении всего срока действия проекта.

Это одно из самых сильных преимуществ fossil:по замыслу это очень скромная церемония.Вы можете поддерживать очень сложный проект в одиночку и на самом деле использовать только fossil commit на регулярной основе.

Следующие шаги

Следующий этап совершенствования может продвигаться в нескольких направлениях.Если вы хотите поделиться работой над проектом со вторым разработчиком, вам захочется узнать больше о клонировании репозитория и синхронизации обновлений.Если вы хотите разрешить независимую работу над функцией без прерывания магистральных сборок, вы можете узнать больше о ветвлении и слиянии.Если вы хотите воспользоваться преимуществами wiki и функциями отслеживания билетов, вам следует узнать о fossil ui, fossil server или настройте свой веб-сервер для запуска fossil.

Но ни один из этих вариантов использования не будет требовать использование fossil close команда.На самом деле, результат fossil help недавно был разделен на более короткий список команд, которые необходимы большинству пользователей, и более длинный список всех команд.В этом подразделении fossil close не попал в короткий список.Единственные функции, которые он выполняет, которые не могут быть легко выполнены простым удалением файлов, - это проверка того, что они не являются несохраненными изменениями, и удаление открытой проверки из вашего личного списка проверок, доступных для fossil all команда.

Словарный запас, специфичный для ископаемых

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

  • "проверка":Определенный набор ревизий файлов, идентифицируемых UUID и, возможно, одним или несколькими тегами.
  • "оформить заказ":Дерево папок, связанное (с помощью fossil open) с определенным репозиторием.Большинство команд fossil требуют, чтобы текущий каталог находился в пределах открытой проверки.
  • "UUID" (Идентификатор пользователя):Уникальный идентификатор для любой конкретной вещи, хранящейся в хранилище ископаемых.На практике UUID - это SHA-1 has объекта, выраженного в шестнадцатеричном формате.В большинстве случаев UUID может быть сокращен до достаточного количества начальных цифр полного хэша, чтобы однозначно идентифицировать его.Обычно он записывается в виде 8 или 10 цифр в квадратных скобках.
  • "артефакт":Файл или или другое содержимое (вики-страница, тикет, манифест и т.д.), хранящееся в репозитории.Каждый файл, который вы регистрируете, становится артефактом.То же самое относится и ко всем метаданным (комментарии, временные метки и т.д.) о каждой проверке.
  • "ветвь":Строка последовательных проверок, которая ответвляется от некоторой корневой проверки.Ветви используются для того, чтобы отложить изменения до тех пор, пока они не будут готовы к объединению, или просто для того, чтобы содержать изменения, которые являются ошибками.
  • "лист":Проверка в конце ветки.
  • "багажник":Первая ветвь в любом репозитории называется "магистраль".Большинство других ветвей будут ответвлениями от какой-то проверки вдоль ствола.
  • "манифест":Список файлов, измененных при конкретной проверке, вместе с метаданными, описывающими эту проверку (пользователь, время, описание, UUID родительской проверки и любые теги, которые она может содержать), составляет манифест.Большинству пользователей на самом деле не нужно беспокоиться о манифестах, они создаются fossil commit и может быть просмотрен из веб-интерфейса.

Веб- интерфейс

Любой пользователь захочет ознакомиться с веб-интерфейсом fossil.Простой первый шаг - сказать fossil ui в рамках открытой проверки.Временная шкала показывает историю разработки с узлом для каждой проверки и линиями, нарисованными для отображения ветвления и слияния.Веб-интерфейс легко настраивается, предоставляет wiki и ticket tracker, а также предоставляет графический интерфейс, с помощью которого можно настроить большинство настроек, связанных с проектом и репозиторием.

Fossil сам по себе является эффективным веб-сервером для содержимого хранилища.На самом деле, большинство страниц в официальный веб-сайт fossil обслуживаются самим fossil из хранилища исходного кода для fossil.

Источники для получения дополнительной помощи

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

Существует тот список пользователей ископаемых со стабильно высоким отношением сигнал/шум.Ключевые разработчики обращают на это внимание, как и многие полезные и знающие пользователи.В списке есть по крайней мере один Архив, а также отдельный список для разработчиков для обсуждения новых функций и планов, но fossil-dev не будет интересен, если вы не хотите поработать над внутренней частью самого fossil.

У Джима Шимпфа есть книга это пытается быть одновременно учебным пособием и полным справочником и включает в себя несколько советов по лучшим практикам.Это стоит того, чтобы прочесть.

Встроенная справка по командной строке вместе с документацией по всем URL-адресам страниц, понятным веб-интерфейсу, также доступна в веб-интерфейсе fossil по адресу /help URL-АДРЕС на сайте любого репозитория.Этот текст справки включает документацию по каждой команде, включая неподдерживаемые внутренние тестовые команды.

И, наконец, [тег fossil][tag] здесь, в StackOverflow, нельзя игнорировать как ресурс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top