1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fibjs-libgit2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
projects.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 21:57 67a8a28

Проекты для LibGit2

Итак, вы хотите начать помощь в работе с libgit2? Это замечательно! Мы приветствуем ваши вклады и обещаем сделать всё возможное, чтобы быть доброжелательными.

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

Перед тем как начать

Пожалуйста, начните с чтения файлов README.md, contributing.md и conventions.md перед началом работы над одним из этих проектов. Эти файлы объясняют наш рабочий процесс и правила оформления кода, чтобы гарантировать, что ваш вклад будет легко интегрирован в libgit2.

Далее выполните инструкции сборки и убедитесь, что вы можете клонировать репозиторий, скомпилировать его и успешно запустить тесты. Это гарантирует, что ваша среда разработки правильно настроена, и вы готовы начать работу над разработкой libgit2.

Начальные проекты

Это хорошие небольшие проекты для начала работы с libgit2. Изучите программы в папке examples/, найдите существующий пример, который отражает базовую команду Git, и добавьте недостающую опцию командной строки. В настоящее время есть много пробелов, и это поможет продемонстрировать, как использовать библиотеку. Вот несколько конкретных идей (хотя их гораздо больше): * Устраните проблему реализации опции командной строки -B (также известной как --break-rewrites) в файле examples/diff.c. Нужно будет найти конфигурационные значения [<n>][/<m>]. В коде уже есть комментарий /* TODO: parse thresholds */. Основная задача здесь — сделать это так, чтобы было чисто и просто, но при этом корректно обрабатывались все случаи (например, -B/70% является допустимым значением).

  • Как расширение идеи для файла examples/log.c, добавьте опцию -i для использования функции strcasestr() для поиска совпадений.

  • Для файла examples/log.c реализуйте опцию --first-parent, теперь когда библиотека libgit2 поддерживает её в API revwalk.

  • Выберите команду Git, которая ещё не эмулируется в папке examples/, и напишите новый пример, который бы её отражал. Примеры не должны быть идеальными эмуляциями, но они должны демонстрировать, как использовать API библиотеки libgit2 для получения результатов, аналогичных командам Git. Это позволяет вам (и нам) легко тестировать определённые аспекты API и измерять совместимость и соответствие функциональности с основной версией Git.

  • Подайте pull request для уточнения документации! Хотя мы стараемся документировать все API, ваши свежие глаза помогут быстро выявить области, которые могут вызывать путаницу. Если ни один из этих вариантов вам не подходит, обратитесь к нашему списку задач, чтобы узнать, есть ли нерешенные задачи, в которых вы хотели бы принять участие.## Большие проекты

Это идеи для больших проектов, основанные на наших архивах Задач. Пожалуйста, не приступайте к одному из этих проектов как к первому проекту для libgit2 — мы предпочли бы сначала познакомиться с вами через успешное завершение работы над одним из меньших проектов выше.

Некоторые из этих проектов разделены на подпроекты и/или имеют некоторые пошаговые действия, направленные на достижение более крупной цели. Эти шаги могут стать хорошими малыми проектами самостоятельно.* Порт части тестового набора Git для выполнения против эмуляции командной строки в examples/ * Выберите одну из команд Git, имитируемых в нашей области examples/ * Извлечение тестов Git, которые проверяют эту команду * Преобразование тестов для вызова нашей эмуляции * Эти тесты могли бы находиться в examples/tests/.

  • Добавление API хуков для перечисления и управления хуками (не запускайте их на данном этапе)
    • Перечисление доступных хуков
    • API для поиска, чтобы узнать, какие хуки имеют скрипт и получить этот скрипт
    • Чтение/запись API для загрузки скрипта хука и записи скрипта хука
    • В конечном итоге, API обратного вызова для активации обратного вызова хука при выполнении соответствующего действия в libgit2
  • Изоляция логики оценки игнорирования в отдельный API
  • Обновление внутреннего кода libxdiff до последней версии из основного Git
  • Улучшения построителя дерева:
    • Расширение для возможности построения иерархии деревьев
  • API применения патча
  • Добавление API редактирования патчей для обеспечения операций типа "git add -p"
  • API textconv для фильтрации двоичных данных перед генерацией различий (что-то вроде текущего API фильтров, скорее всего).
  • Профилирование производительности и её улучшение
  • Поддержка замены ссылок "git replace"
  • Включение конфликтов в результатах сравнения и статусе
    • GIT_DELTA_CONFLICT для элементов, находящихся в конфликте (с несколькими файлами) * Соответствующие флаги для статуса
  • Поддержка выборочной загрузки (например, "core.sparseCheckout" и ".git/info/sparse-checkout")

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/fibjs-libgit2.git
git@api.gitlife.ru:oschina-mirror/fibjs-libgit2.git
oschina-mirror
fibjs-libgit2
fibjs-libgit2
main