WebTools Git/ru

WebTools Git‏‎

Расположение в меню
Web Tools → Git
Верстаки
WebTools - ВебИнструменты
Быстрые клавиши
Нет
Представлено в версии
0.17
См. также
Нет

Начиная с FreeCAD v0.17, этот инструмент был удалён из Верстака Arch и теперь является частью внешнего Верстака WebTools (ВебИнструменты), который вы можете установить через меню Инструменты → Менеджер дополнений.

Описание

Этот инструмент позволяет тебе управлять документом используя Git. Git является мощной системой контроля версий, которая может управлять различными версиями файлов и отслеживать их изменения.

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

Необходимое условие: Чтобы иметь возможность пользоваться данным инструментом, пакет gitpython должен быть установлен в твоей системе. В большинстве linux дистрибутивов, gitpython есть в стандартном репозитории под названием gitpython или python-git.

Применение

  1. Убедись, что панель Просмотра отчёта открыта, так как сообщения Git будут печататься в ней.
  2. Сохрани текущий активный документ, убедившись, что сохранённый файл находится в существующем git-хранилище. Он может находиться в подкаталоге.
  3. Выбери меню Web Tools → Git
  4. Это откроет Панель задач в Комбо виде.

Параметры

Вкладка Задачи с интерфейсом 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 в хранилище.

Примечание: С 2023-12-09 на системах Arch Linux скрипт fcinfo включён в пакет freecad, обновление здесь.
Примечание: С 2023-12-09 на системах Arch Linux fcinfo доступен по адресу /usr/bin/fcinfo.
*.FCStd diff=fcinfo
[diff "fcinfo"]
textconv = /path/to/fcinfo
[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD

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

Глобальное включение fcinfo

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

*.FCStd diff=fcinfo
[diff "fcinfo"]
textconv = /path/to/fcinfo

Обрати внимание, что любая настройка, выполненная на основе репозитория, отменяет глобальные конфигурации.