|
|
| Расположение в меню |
|---|
| Web Tools → Git |
| Верстаки |
| WebTools - ВебИнструменты |
| Быстрые клавиши |
| Нет |
| Представлено в версии |
| 0.17 |
| См. также |
| Нет |
Описание
Этот инструмент позволяет тебе управлять документом используя Git. Git является мощной системой контроля версий, которая может управлять различными версиями файлов и отслеживать их изменения.
Git довольно сложный инструмент, тебе лучше изучить его основы, перед использованием этого инструмента, чтобы избежать потерь данных. Всеобъемлющая литература о Git легко находится в интернете.
Необходимое условие: Чтобы иметь возможность пользоваться данным инструментом, пакет gitpython должен быть установлен в твоей системе. В большинстве linux дистрибутивов, gitpython есть в стандартном репозитории под названием gitpython или python-git.
Применение
- Убедись, что панель Просмотра отчёта открыта, так как сообщения Git будут печататься в ней.
- Сохрани текущий активный документ, убедившись, что сохранённый файл находится в существующем git-хранилище. Он может находиться в подкаталоге.
- Выбери меню Web Tools →
Git
- Это откроет Панель задач в Комбо виде.
Параметры

- Кнопка Log вызывает диалог, показывающий последние записи в журнале. Вывод соответствует
git log. - Кнопка Refresh повторно просканирует хранилище на предмет изменённых файлов. После сохранения работы необходимо выполнить обновление вручную.
- Кнопка Diff покажет различия между текущей версией выбранного файла и последней версией, хранящейся в репозитории. Вывод соответствует
git diff.- По умолчанию выполняется бинарный diff, для текстового diff-а необходимо настроить инструмент
fcinfo.
- По умолчанию выполняется бинарный diff, для текстового diff-а необходимо настроить инструмент
- Кнопка Select all выделит все файлы для фиксации.
- Кнопка Commit зафиксирует выбранные файлы. Не забудьте написать сообщение о фиксации, описывающее изменения, которые вы регистрируете.
- Кнопка Pull - загружает все новые изменения в хранилище с выбранного удалённого компьютера. Если файл, открытый в данный момент в FreeCAD, изменяется в результате извлечения, то появится предупреждение, и вы сможете либо сохранить файл снова, либо сохранить его в другом месте.
- Кнопка Push - загружает ваш последний утверждённый документ(ы) на выбранный удалённый компьютер.
Ограничения
- Инструмент пока не может создавать новые хранилища. Вы должны иметь уже созданное локальное хранилище. (FreeCAD проверит, находится ли текущий файл документа в Git-хранилище).
- Инструмент не может изменять или создавать ветки. Вы должны делать это вручную с помощью стандартных инструментов Git.
Включение человеко-читаемых отличий для файлов FCStd с помощью утилиты fcinfo
Формат файлов FreeCAD FCStd - это бинарный формат на основе zip, для которого Git не может создавать корректные описания расхождений. Это означает, что вы не можете увидеть, что изменилось между одной версией и другой, а также то, что каждая новая версия, хранящаяся в репозитории Git, является полной копией файла.
Хотя вторая проблема в настоящее время не имеет решения, первая может быть решена с помощью небольшого инструмента, доступного из исходного кода FreeCAD, который называется fcinfo. Git можно попросить использовать утилиту fcinfo для печати удобного для человека отчёта о файле FCStd, а когда его попросят вывести разницу между двумя файлами FCStd, он выдаст вместо этого разницу между двумя отчётами fcinfo. Обратите внимание, что это только визуальная обратная связь, полная копия файла будет по-прежнему храниться внутри программы.
Пример diff, созданного с помощью fcinfo:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
Каждый файл FreeCAD содержит контрольную сумму SHA1, которая будет меняться каждый раз при сохранении файла, даже если его содержимое не менялось. Поэтому fcinfo всегда будет что-то выводить, независимо от изменения содержимого.
Чтобы включить использование fcinfo (только для Linux и Mac - TODO: добавить инструкции для Windows)
Использование fcinfo в одном Git-репозитории
Вот шаги, позволяющие использовать инструмент fcinfo в хранилище.
- Сохрани файл fcinfo где-нибудь в своём системном пути.
- Примечание: С 2023-12-09 на системах Arch Linux скрипт
fcinfoвключён в пакетfreecad, обновление здесь.
- Сделай его исполняемым.
- Примечание: С 2023-12-09 на системах Arch Linux
fcinfoдоступен по адресу/usr/bin/fcinfo.
- Создай файл
.gitattributesв своём Git-репозитории и добавь в него следующую строку:
*.FCStd diff=fcinfo
- Добавь следующие строки в файл
.gitconfigв своём домашнем каталоге:
[diff "fcinfo"] textconv = /path/to/fcinfo
- В качестве альтернативы, если ты хочешь вызывать fcinfo с аргументами (например,
--gui), используй этот подход:
[diff "fcinfo"] textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Обрати внимание, что если ты работаешь в совместном проекте, ты можешь захотеть включить инструмент fcinfo в ваш репозиторий, в этом случае путь будет относительным к корневому каталогу вашего Git-репозитория.
Глобальное включение fcinfo
Если ты работаешь над многими проектами, которым нужен инструмент fcinfo, ты можешь включить его глобально для своего пользователя.
- Создай файл
$HOME/.config/git/attributesи добавьте в него следующую строку:
*.FCStd diff=fcinfo
- Добавь следующие строки в файл
$HOME/.config/git/config:- Эквивалентной командой является
git config --global diff.fcinfo.textconv "/path/to/fcinfo". - Пользователи Arch Linux, использующие пакет
freecad, могут использовать{{{1}}}, так как он уже установлен в их системе.
- Эквивалентной командой является
[diff "fcinfo"] textconv = /path/to/fcinfo
Обрати внимание, что любая настройка, выполненная на основе репозитория, отменяет глобальные конфигурации.
Эта страница получена от https://wiki.freecad.org/WebTools_Git