LibGit2

يوفر وحدة LibGit2 روابط إلى libgit2، وهي مكتبة C محمولة تنفذ الوظائف الأساسية لنظام التحكم في الإصدارات Git. تُستخدم هذه الروابط حاليًا لتشغيل مدير حزم جوليا. من المتوقع أن يتم نقل هذه الوحدة في النهاية إلى حزمة منفصلة.

Functionality

بعض هذه الوثائق تفترض معرفة سابقة بواجهة برمجة التطبيقات libgit2. لمزيد من المعلومات حول بعض الكائنات والأساليب المشار إليها هنا، يرجى الرجوع إلى libgit2 API reference.

LibGit2.BufferType
LibGit2.Buffer

حاوية بيانات لتصدير البيانات من libgit2. تتطابق مع هيكل git_buf.

عند جلب البيانات من LibGit2، سيكون الاستخدام النموذجي كما يلي:

buf_ref = Ref(Buffer())
@check ccall(..., (Ptr{Buffer},), buf_ref)
# عملية على buf_ref
free(buf_ref)

بشكل خاص، لاحظ أنه يجب استدعاء LibGit2.free بعد ذلك على كائن Ref.

source
LibGit2.CheckoutOptionsType
LibGit2.CheckoutOptions

يتطابق مع هيكل git_checkout_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • checkout_strategy: تحديد كيفية التعامل مع النزاعات وما إذا كان يجب فرض عملية السحب/إعادة إنشاء الملفات المفقودة.
  • disable_filters: إذا كانت غير صفرية، فلا تطبق الفلاتر مثل CLRF (لتحويل فواصل الأسطر بين UNIX و DOS).
  • dir_mode: وضع القراءة/الكتابة/الوصول لأي دلائل متعلقة بالسحب. الافتراضي هو 0755.
  • file_mode: وضع القراءة/الكتابة/الوصول لأي ملفات متعلقة بالسحب. الافتراضي هو 0755 أو 0644، اعتمادًا على الكائن.
  • file_open_flags: أعلام بتية تستخدم لفتح أي ملفات أثناء السحب.
  • notify_flags: أعلام لنوع النزاعات التي يجب أن يتم إبلاغ المستخدم عنها.
  • notify_cb: دالة رد نداء اختيارية لإبلاغ المستخدم إذا حدثت نزاع أثناء السحب. إذا كانت هذه الدالة تعيد قيمة غير صفرية، سيتم إلغاء السحب.
  • notify_payload: الحمولة لدالة رد النداء للإبلاغ.
  • progress_cb: دالة رد نداء اختيارية لعرض تقدم السحب.
  • progress_payload: الحمولة لدالة رد النداء للتقدم.
  • paths: إذا لم تكن فارغة، تصف أي المسارات يجب البحث عنها أثناء السحب. إذا كانت فارغة، ستحدث عملية السحب على جميع الملفات في المستودع.
  • baseline: المحتوى المتوقع لـ workdir، الملتقط في (مؤشر إلى) GitTree. الافتراضي هو حالة الشجرة عند HEAD.
  • baseline_index: المحتوى المتوقع لـ workdir، الملتقط في (مؤشر إلى) GitIndex. الافتراضي هو حالة الفهرس عند HEAD.
  • target_directory: إذا لم تكن فارغة، السحب إلى هذا الدليل بدلاً من workdir.
  • ancestor_label: في حالة النزاعات، اسم الجانب المشترك.
  • our_label: في حالة النزاعات، اسم "جانبنا".
  • their_label: في حالة النزاعات، اسم "جانبهم".
  • perfdata_cb: دالة رد نداء اختيارية لعرض بيانات الأداء.
  • perfdata_payload: الحمولة لدالة رد النداء للأداء.
source
LibGit2.CloneOptionsType
LibGit2.CloneOptions

يتطابق مع هيكل git_clone_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • checkout_opts: الخيارات لأداء عملية السحب من البعيد كجزء من الاستنساخ.
  • fetch_opts: الخيارات لأداء عملية السحب المسبق من البعيد كجزء من الاستنساخ.
  • bare: إذا كانت 0، استنساخ المستودع البعيد بالكامل. إذا كانت غير صفرية، قم بإجراء استنساخ عاري، حيث لا يوجد نسخة محلية من ملفات المصدر في المستودع و gitdir و workdir هما نفس الشيء.
  • localclone: علامة تشير إلى ما إذا كان يجب استنساخ قاعدة بيانات كائن محلية أو إجراء سحب. الافتراضي هو السماح لـ git بالقرار. لن يستخدم النقل المدرك لـ git لاستنساخ محلي، ولكنه سيستخدمه لعناوين URL التي تبدأ بـ file://.
  • checkout_branch: اسم الفرع الذي سيتم سحبه. إذا كانت سلسلة فارغة، سيتم سحب الفرع الافتراضي من البعيد.
  • repository_cb: رد نداء اختياري سيتم استخدامه لإنشاء المستودع الجديد الذي يتم فيه الاستنساخ.
  • repository_cb_payload: الحمولة لرد نداء المستودع.
  • remote_cb: رد نداء اختياري يستخدم لإنشاء GitRemote قبل إجراء الاستنساخ منه.
  • remote_cb_payload: الحمولة لرد نداء البعيد.
source
LibGit2.DescribeOptionsType
LibGit2.DescribeOptions

يتطابق مع هيكل git_describe_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • max_candidates_tags: اعتبر هذا العدد من أحدث العلامات في refs/tags لوصف الالتزام. الافتراضي هو 10 (لذا سيتم فحص أحدث 10 علامات لمعرفة ما إذا كانت تصف الالتزام).
  • describe_strategy: ما إذا كان يجب اعتبار جميع الإدخالات في refs/tags (ما يعادل git-describe --tags) أو جميع الإدخالات في refs/ (ما يعادل git-describe --all). الافتراضي هو عرض العلامات المعلنة فقط. إذا تم تمرير Consts.DESCRIBE_TAGS، سيتم اعتبار جميع العلامات، سواء كانت معلنة أم لا. إذا تم تمرير Consts.DESCRIBE_ALL، سيتم اعتبار أي مرجع في refs/.
  • pattern: اعتبر فقط العلامات التي تتطابق مع pattern. يدعم توسيع الجلوب.
  • only_follow_first_parent: عند العثور على المسافة من مرجع مطابق إلى الكائن الموصوف، اعتبر فقط المسافة من الوالد الأول.
  • show_commit_oid_as_fallback: إذا لم يمكن العثور على مرجع مطابق يصف الالتزام، اعرض GitHash للالتزام بدلاً من إلقاء خطأ (السلوك الافتراضي).
source
LibGit2.DescribeFormatOptionsType
LibGit2.DescribeFormatOptions

يتطابق مع هيكل git_describe_format_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • abbreviated_size: الحد الأدنى لحجم GitHash المختصر الذي يجب استخدامه، مع الافتراضي 7.
  • always_use_long_format: تعيينه إلى 1 لاستخدام التنسيق الطويل للسلاسل حتى لو كان يمكن استخدام تنسيق قصير.
  • dirty_suffix: إذا تم تعيينه، سيتم إضافته إلى نهاية سلسلة الوصف إذا كانت workdir متسخة.
source
LibGit2.DiffDeltaType
LibGit2.DiffDelta

وصف التغييرات لإدخال واحد. يتطابق مع هيكل git_diff_delta.

تمثل الحقول:

  • status: واحدة من Consts.DELTA_STATUS، تشير إلى ما إذا كان الملف قد تم إضافته/تعديله/حذفه.
  • flags: علامات للدلتا والأشياء على كل جانب. تحدد ما إذا كان يجب التعامل مع الملف (الملفات) كملفات ثنائية/نصية، وما إذا كانت موجودة على كل جانب من الفرق، وما إذا كانت معرفات الكائن معروفة بأنها صحيحة.
  • similarity: تستخدم للإشارة إلى ما إذا كان قد تم إعادة تسمية ملف أو نسخه.
  • nfiles: عدد الملفات في الدلتا (على سبيل المثال، إذا تم تشغيل الدلتا على معرف التزام فرعي، فقد تحتوي على أكثر من ملف واحد).
  • old_file: DiffFile تحتوي على معلومات حول الملف (الملفات) قبل التغييرات.
  • new_file: DiffFile تحتوي على معلومات حول الملف (الملفات) بعد التغييرات.
source
LibGit2.DiffFileType
LibGit2.DiffFile

وصف لواحدة من جوانب الدلتا. يتطابق مع هيكل git_diff_file.

تمثل الحقول:

  • id: GitHash للعنصر في الفرق. إذا كان العنصر فارغًا في هذه الجانب من الفرق (على سبيل المثال، إذا كان الفرق يتعلق بإزالة ملف)، سيكون هذا GitHash(0).
  • path: مسار منتهي بـ NULL للعنصر بالنسبة لدليل العمل للمستودع.
  • size: حجم العنصر بالبايت.
  • flags: مجموعة من أعلام git_diff_flag_t. يتم تعيين البت i من هذه القيمة الصحيحة إلى العلم i.
  • mode: وضع stat للعنصر.
  • id_abbrev: موجود فقط في إصدارات LibGit2 الأحدث من أو تساوي 0.25.0. طول حقل id عند تحويله باستخدام string. عادة ما يكون مساوياً لـ OID_HEXSZ (40).
source
LibGit2.DiffOptionsStructType
LibGit2.DiffOptionsStruct

يتطابق مع هيكل git_diff_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • flags: علامات تتحكم في الملفات التي ستظهر في الفرق. الافتراضي هو DIFF_NORMAL.
  • ignore_submodules: ما إذا كان يجب النظر في الملفات في الوحدات الفرعية أم لا. الافتراضي هو SUBMODULE_IGNORE_UNSPECIFIED، مما يعني أن تكوين الوحدة الفرعية سيتحكم في ما إذا كانت ستظهر في الفرق أم لا.
  • pathspec: المسار إلى الملفات التي يجب تضمينها في الفرق. الافتراضي هو استخدام جميع الملفات في المستودع.
  • notify_cb: رد نداء اختياري سيقوم بإخطار المستخدم بالتغييرات في الفرق مع إضافة دلتا الملفات إليه.
  • progress_cb: رد نداء اختياري سيعرض تقدم الفرق. ذو صلة فقط في إصدارات libgit2 التي لا تقل عن 0.24.0.
  • payload: الحمولة التي سيتم تمريرها إلى notify_cb و progress_cb.
  • context_lines: عدد الأسطر غير المتغيرة المستخدمة لتعريف حواف الكتلة. هذا هو أيضًا عدد الأسطر التي ستظهر قبل/بعد الكتلة لتوفير السياق. الافتراضي هو 3.
  • interhunk_lines: الحد الأقصى لعدد الأسطر غير المتغيرة بين كتلتين منفصلتين المسموح به قبل دمج الكتلتين. الافتراضي هو 0.
  • id_abbrev: يحدد طول اختصار GitHash للطباعة. الافتراضي هو 7.
  • max_size: الحد الأقصى لحجم ملف الكائن. فوق هذا الحجم، سيتم التعامل معه ككائن ثنائي. الافتراضي هو 512 ميغابايت.
  • old_prefix: الدليل الافتراضي للملفات القديمة على جانب واحد من الفرق. الافتراضي هو "a".
  • new_prefix: الدليل الافتراضي للملفات الجديدة على جانب واحد من الفرق. الافتراضي هو "b".
source
LibGit2.FetchHeadType
LibGit2.FetchHead

يحتوي على معلومات حول HEAD أثناء عملية السحب، بما في ذلك اسم ورابط الفرع الذي تم السحب منه، وoid لـ HEAD، وما إذا كان HEAD الذي تم سحبه قد تم دمجه محليًا.

تمثل الحقول:

  • name: الاسم في قاعدة بيانات المراجع المحلية لرأس السحب، على سبيل المثال، "refs/heads/master".
  • url: رابط رأس السحب.
  • oid: GitHash لقمة رأس السحب.
  • ismerge: علامة بوليانية تشير إلى ما إذا كانت التغييرات في البعيد قد تم دمجها في النسخة المحلية أم لا. إذا كانت true، فإن النسخة المحلية محدثة مع رأس السحب البعيد.
source
LibGit2.FetchOptionsType
LibGit2.FetchOptions

يتطابق مع هيكل git_fetch_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • callbacks: ردود الاتصال عن بُعد لاستخدامها أثناء السحب.
  • prune: ما إذا كان يجب إجراء عملية تنظيف بعد السحب أم لا. الإعداد الافتراضي هو استخدام الإعداد من GitConfig.
  • update_fetchhead: ما إذا كان يجب تحديث FetchHead بعد السحب. الإعداد الافتراضي هو إجراء التحديث، وهو السلوك العادي لـ git.
  • download_tags: ما إذا كان يجب تنزيل العلامات الموجودة على البُعد أم لا. الإعداد الافتراضي هو طلب العلامات للأشياء التي يتم تنزيلها على أي حال من الخادم.
  • proxy_opts: خيارات الاتصال بالبعيد من خلال وكيل. انظر ProxyOptions. موجودة فقط في إصدارات libgit2 الأحدث من أو تساوي 0.25.0.
  • custom_headers: أي رؤوس إضافية مطلوبة للسحب. موجودة فقط في إصدارات libgit2 الأحدث من أو تساوي 0.24.0.
source
LibGit2.GitAnnotatedType
GitAnnotated(repo::GitRepo, commit_id::GitHash)
GitAnnotated(repo::GitRepo, ref::GitReference)
GitAnnotated(repo::GitRepo, fh::FetchHead)
GitAnnotated(repo::GitRepo, committish::AbstractString)

تحتوي الالتزامات المعلقة في Git على معلومات حول كيفية البحث عنها ولماذا، بحيث تكون عمليات إعادة الترتيب أو الدمج لديها مزيد من المعلومات حول سياق الالتزام. تحتوي ملفات النزاع على معلومات حول الفروع المصدر/الهدف في الدمج التي تتعارض، على سبيل المثال. يمكن أن تشير الالتزامات المعلقة إلى قمة فرع بعيد، على سبيل المثال عندما يتم تمرير FetchHead، أو إلى رأس فرع موصوف باستخدام GitReference.

source
LibGit2.GitBlameType
GitBlame(repo::GitRepo, path::AbstractString; options::BlameOptions=BlameOptions())

قم بإنشاء كائن GitBlame للملف الموجود في path، باستخدام معلومات التغيير المستخلصة من تاريخ repo. يسجل كائن GitBlame من قام بتغيير أي أجزاء من الملف ومتى وكيف. تتحكم options في كيفية فصل محتويات الملف وأي التزامات يجب استكشافها - انظر BlameOptions لمزيد من المعلومات.

source
LibGit2.GitBlobType
GitBlob(repo::GitRepo, hash::AbstractGitHash)
GitBlob(repo::GitRepo, spec::AbstractString)

إرجاع كائن GitBlob من repo المحدد بواسطة hash/spec.

  • hash هو تجزئة كاملة (GitHash) أو تجزئة جزئية (GitShortHash).
  • spec هو مواصفة نصية: انظر وثائق git للحصول على قائمة كاملة.
source
LibGit2.GitCommitType
GitCommit(repo::GitRepo, hash::AbstractGitHash)
GitCommit(repo::GitRepo, spec::AbstractString)

إرجاع كائن GitCommit من repo المحدد بواسطة hash/spec.

  • hash هو تجزئة كاملة (GitHash) أو تجزئة جزئية (GitShortHash).
  • spec هو مواصفة نصية: انظر وثائق git للحصول على قائمة كاملة.
source
LibGit2.GitConfigType
GitConfig(path::AbstractString, level::Consts.GIT_CONFIG=Consts.CONFIG_LEVEL_APP, force::Bool=false)

قم بإنشاء GitConfig جديدة عن طريق تحميل معلومات التكوين من الملف الموجود في path. راجع addfile لمزيد من المعلومات حول خيارات level و repo و force.

source
GitConfig(repo::GitRepo)

احصل على التكوين المخزن لمستودع الجيت repo. إذا لم يكن لدى repo ملف تكوين محدد، فسيتم استخدام تكوين الجيت الافتراضي.

source
GitConfig(level::Consts.GIT_CONFIG=Consts.CONFIG_LEVEL_DEFAULT)

احصل على إعدادات جيت الافتراضية عن طريق تحميل ملفات الإعدادات العالمية والنظامية في إعدادات ذات أولوية. يمكن استخدام ذلك للوصول إلى خيارات الإعداد الافتراضية خارج مستودع جيت محدد.

source
LibGit2.GitHashType
GitHash

معرف كائن git، يعتمد على تجزئة sha-1. إنه سلسلة بطول 20 بايت (40 رقم سداسي عشري) تُستخدم لتحديد GitObject في مستودع.

source
LibGit2.GitObjectType
GitObject(repo::GitRepo, hash::AbstractGitHash)
GitObject(repo::GitRepo, spec::AbstractString)

إرجاع الكائن المحدد (GitCommit, GitBlob, GitTree أو GitTag) من repo المحدد بواسطة hash/spec.

  • hash هو تجزئة كاملة (GitHash) أو جزئية (GitShortHash).
  • spec هو مواصفة نصية: انظر وثائق git للحصول على قائمة كاملة.
source
LibGit2.GitRemoteType
GitRemote(repo::GitRepo, rmt_name::AbstractString, rmt_url::AbstractString) -> GitRemote

ابحث عن مستودع جيت بعيد باستخدام اسمه ورابطه. يستخدم مواصفة جلب الافتراضية.

أمثلة

repo = LibGit2.init(repo_path)
remote = LibGit2.GitRemote(repo, "upstream", repo_url)
source
GitRemote(repo::GitRepo, rmt_name::AbstractString, rmt_url::AbstractString, fetch_spec::AbstractString) -> GitRemote

ابحث عن مستودع جيت بعيد باستخدام اسم المستودع وURL، بالإضافة إلى مواصفات كيفية جلب البيانات من البعيد (مثل الفرع البعيد الذي يجب جلبه).

أمثلة

repo = LibGit2.init(repo_path)
refspec = "+refs/heads/mybranch:refs/remotes/origin/mybranch"
remote = LibGit2.GitRemote(repo, "upstream", repo_url, refspec)
source
LibGit2.GitRemoteAnonFunction
GitRemoteAnon(repo::GitRepo, url::AbstractString) -> GitRemote

ابحث عن مستودع جيت بعيد باستخدام عنوان URL الخاص به فقط، وليس اسمه.

أمثلة

repo = LibGit2.init(repo_path)
remote = LibGit2.GitRemoteAnon(repo, repo_url)
source
LibGit2.GitRepoExtFunction
LibGit2.GitRepoExt(path::AbstractString, flags::Cuint = Cuint(Consts.REPOSITORY_OPEN_DEFAULT))

افتح مستودع git في path مع تحكمات موسعة (على سبيل المثال، إذا كان يجب أن يكون المستخدم الحالي عضوًا في مجموعة وصول خاصة لقراءة path).

source
LibGit2.GitRevWalkerType
GitRevWalker(repo::GitRepo)

A GitRevWalker يمشي عبر الإصدارات (أي الالتزامات) لمستودع git repo. إنه مجموعة من الالتزامات في المستودع، ويدعم التكرار واستدعاءات لـ LibGit2.map و LibGit2.count (على سبيل المثال، يمكن استخدام LibGit2.count لتحديد النسبة المئوية من الالتزامات في مستودع ما التي قام بها مؤلف معين).

cnt = LibGit2.with(LibGit2.GitRevWalker(repo)) do walker
    LibGit2.count((oid,repo)->(oid == commit_oid1), walker, oid=commit_oid1, by=LibGit2.Consts.SORT_TIME)
end

هنا، LibGit2.count يجد عدد الالتزامات على طول المسار مع GitHash معين. نظرًا لأن GitHash فريد لالتزام معين، سيكون cnt هو 1.

source
LibGit2.GitShortHashType
GitShortHash(hash::GitHash, len::Integer)

معرف كائن جيت مختصر، يمكن استخدامه لتحديد كائن جيت عندما يكون فريدًا، ويتكون من أول len رقم سداسي عشري من hash (يتم تجاهل الأرقام المتبقية).

source
LibGit2.GitStatusType
LibGit2.GitStatus(repo::GitRepo; status_opts=StatusOptions())

جمع المعلومات حول حالة كل ملف في مستودع الجيت repo (على سبيل المثال، هل تم تعديل الملف، أو تم وضعه في المرحلة، إلخ). يمكن استخدام status_opts لتعيين خيارات مختلفة، على سبيل المثال، سواء للنظر في الملفات غير المتعقبة أو ما إذا كان يجب تضمين الوحدات الفرعية أم لا. انظر StatusOptions لمزيد من المعلومات.

source
LibGit2.GitTagType
GitTag(repo::GitRepo, hash::AbstractGitHash)
GitTag(repo::GitRepo, spec::AbstractString)

إرجاع كائن GitTag من repo المحدد بواسطة hash/spec.

  • hash هو تجزئة كاملة (GitHash) أو تجزئة جزئية (GitShortHash).
  • spec هو مواصفة نصية: انظر وثائق git للحصول على قائمة كاملة.
source
LibGit2.GitTreeType
GitTree(repo::GitRepo, hash::AbstractGitHash)
GitTree(repo::GitRepo, spec::AbstractString)

إرجاع كائن GitTree من repo المحدد بواسطة hash/spec.

  • hash هو تجزئة كاملة (GitHash) أو تجزئة جزئية (GitShortHash).
  • spec هو مواصفة نصية: انظر وثائق git للحصول على قائمة كاملة.
source
LibGit2.BlameOptionsType
LibGit2.BlameOptions

يتطابق مع هيكل git_blame_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • flags: واحدة من Consts.BLAME_NORMAL أو Consts.BLAME_FIRST_PARENT (لم يتم تنفيذ الأعلام الأخرى بعد من قبل libgit2).
  • min_match_characters: الحد الأدنى لعدد الأحرف الأبجدية الرقمية التي يجب أن تتغير في الالتزام من أجل ربط التغيير بذلك الالتزام. القيمة الافتراضية هي 20. يبدأ سريانها فقط إذا تم استخدام أحد أعلام Consts.BLAME_*_COPIES، والتي لم تنفذها libgit2 بعد.
  • newest_commit: GitHash لأحدث التزام للنظر في التغييرات منه.
  • oldest_commit: GitHash لأقدم التزام للنظر في التغييرات منه.
  • min_line: السطر الأول من الملف الذي يبدأ منه اللوم. القيمة الافتراضية هي 1.
  • max_line: السطر الأخير من الملف الذي يتم اللوم عليه. القيمة الافتراضية هي 0، مما يعني السطر الأخير من الملف.
source
LibGit2.MergeOptionsType
LibGit2.MergeOptions

يتطابق مع هيكل git_merge_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.

  • flags: enum للعلامات التي تصف سلوك الدمج. تم تعريفه في git_merge_flag_t. الـ enum المقابل في جوليا هو GIT_MERGE وله القيم:

    • MERGE_FIND_RENAMES: اكتشاف ما إذا تم إعادة تسمية ملف بين السلف المشترك و"نحن" أو "هم" في الدمج. يسمح بالدمج حيث تم إعادة تسمية ملف.
    • MERGE_FAIL_ON_CONFLICT: الخروج فورًا إذا تم العثور على تعارض بدلاً من محاولة حله.
    • MERGE_SKIP_REUC: عدم كتابة امتداد REUC على الفهرس الناتج عن الدمج.
    • MERGE_NO_RECURSIVE: إذا كانت الالتزامات التي يتم دمجها تحتوي على قواعد دمج متعددة، استخدم الأولى، بدلاً من محاولة دمج القواعد بشكل متكرر.
  • rename_threshold: مدى تشابه ملفين ليتم اعتبار أحدهما إعادة تسمية للآخر. هذه قيمة صحيحة تحدد نسبة التشابه. الافتراضي هو 50.

  • target_limit: الحد الأقصى لعدد الملفات التي يمكن مقارنتها للبحث عن إعادة التسمية. الافتراضي هو 200.

  • metric: دالة مخصصة اختيارية لاستخدامها لتحديد التشابه بين ملفين لاكتشاف إعادة التسمية.

  • recursion_limit: الحد الأعلى لعدد عمليات الدمج للسلف المشترك التي يتم تنفيذها لمحاولة بناء قاعدة دمج افتراضية جديدة للدمج. الافتراضي هو عدم وجود حد. هذا الحقل موجود فقط في إصدارات libgit2 الأحدث من 0.24.0.

  • default_driver: سائق الدمج الذي يجب استخدامه إذا كانت كلا الجانبين قد تغيرت. هذا الحقل موجود فقط في إصدارات libgit2 الأحدث من 0.25.0.

  • file_favor: كيفية التعامل مع محتويات الملفات المتعارضة لسائق text.

    • MERGE_FILE_FAVOR_NORMAL: إذا كان لدى كلا الجانبين من الدمج تغييرات في قسم، قم بتدوين التعارض في الفهرس الذي سيستخدمه git checkout لإنشاء ملف دمج، والذي يمكن للمستخدم بعد ذلك الإشارة إليه لحل التعارضات. هذا هو الافتراضي.
    • MERGE_FILE_FAVOR_OURS: إذا كان لدى كلا الجانبين من الدمج تغييرات في قسم، استخدم النسخة في جانب "نحن" من الدمج في الفهرس.
    • MERGE_FILE_FAVOR_THEIRS: إذا كان لدى كلا الجانبين من الدمج تغييرات في قسم، استخدم النسخة في جانب "هم" من الدمج في الفهرس.
    • MERGE_FILE_FAVOR_UNION: إذا كان لدى كلا الجانبين من الدمج تغييرات في قسم، قم بتضمين كل سطر فريد من كلا الجانبين في الملف الذي يتم وضعه في الفهرس.
  • file_flags: إرشادات لدمج الملفات.

source
LibGit2.ProxyOptionsType
LibGit2.ProxyOptions

خيارات الاتصال من خلال وكيل.

يتطابق مع هيكل git_proxy_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.

  • proxytype: enum لنوع الوكيل المستخدم. محدد في git_proxy_t. GIT_PROXY هو enum المقابل في جوليا وله القيم:

    • PROXY_NONE: عدم محاولة الاتصال من خلال وكيل.
    • PROXY_AUTO: محاولة معرفة تكوين الوكيل من تكوين git.
    • PROXY_SPECIFIED: الاتصال باستخدام عنوان URL المعطى في حقل url لهذا الهيكل.

    الافتراضي هو الكشف التلقائي عن نوع الوكيل.

  • url: عنوان URL للوكيل.

  • credential_cb: مؤشر إلى دالة رد نداء سيتم استدعاؤها إذا كان البعيد يتطلب مصادقة للاتصال.

  • certificate_cb: مؤشر إلى دالة رد نداء سيتم استدعاؤها إذا فشلت عملية التحقق من الشهادة. هذا يسمح للمستخدم بتحديد ما إذا كان يجب الاستمرار في الاتصال أم لا. إذا كانت الدالة تعيد 1، سيتم السماح بالاتصال. إذا أعادت 0، فلن يُسمح بالاتصال. يمكن استخدام قيمة سالبة لإرجاع الأخطاء.

  • payload: الحمولة التي سيتم تقديمها إلى دالتي رد النداء.

أمثلة

julia> fo = LibGit2.FetchOptions(
           proxy_opts = LibGit2.ProxyOptions(url = Cstring("https://my_proxy_url.com")))

julia> fetch(remote, "master", options=fo)
source
LibGit2.PushOptionsType
LibGit2.PushOptions

يتطابق مع هيكل git_push_options.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • parallelism: إذا كان يجب إنشاء ملف حزمة، فإن هذه المتغير يحدد عدد خيوط العمل التي سيتم إنشاؤها بواسطة packbuilder. إذا كان 0، سيقوم packbuilder بتعيين عدد الخيوط للاستخدام تلقائيًا. القيمة الافتراضية هي 1.
  • callbacks: ردود الفعل (مثل المصادقة مع البعيد) لاستخدامها في الدفع.
  • proxy_opts: ذات صلة فقط إذا كانت نسخة LibGit2 أكبر من أو تساوي 0.25.0. تعيين الخيارات لاستخدام وكيل للتواصل مع البعيد. انظر ProxyOptions لمزيد من المعلومات.
  • custom_headers: ذات صلة فقط إذا كانت نسخة LibGit2 أكبر من أو تساوي 0.24.0. رؤوس إضافية مطلوبة لعملية الدفع.
source
LibGit2.RebaseOperationType
LibGit2.RebaseOperation

يصف تعليمات/عملية واحدة يجب تنفيذها أثناء إعادة التأسيس. يتطابق مع هيكل git_rebase_operation.

تمثل الحقول:

  • optype: نوع عملية إعادة التأسيس التي يتم تنفيذها حاليًا. الخيارات هي:

    • REBASE_OPERATION_PICK: اختيار الالتزام المعني.
    • REBASE_OPERATION_REWORD: اختيار الالتزام المعني، ولكن إعادة كتابة رسالته باستخدام المطالبة.
    • REBASE_OPERATION_EDIT: اختيار الالتزام المعني، ولكن السماح للمستخدم بتحرير محتويات الالتزام ورسالتها.
    • REBASE_OPERATION_SQUASH: دمج الالتزام المعني في الالتزام السابق. ستتم دمج رسائل الالتزامين.
    • REBASE_OPERATION_FIXUP: دمج الالتزام المعني في الالتزام السابق. سيتم استخدام رسالة الالتزام السابقة فقط.
    • REBASE_OPERATION_EXEC: عدم اختيار الالتزام. تشغيل أمر والاستمرار إذا انتهى الأمر بنجاح.
  • id: GitHash للالتزام الذي يتم العمل عليه خلال هذه الخطوة من إعادة التأسيس.

  • exec: في حالة استخدام REBASE_OPERATION_EXEC، الأمر الذي يجب تشغيله خلال هذه الخطوة (على سبيل المثال، تشغيل مجموعة الاختبارات بعد كل التزام).

source
LibGit2.RebaseOptionsType
LibGit2.RebaseOptions

يتطابق مع بنية git_rebase_options.

تمثل الحقول:

  • version: إصدار البنية المستخدمة، في حال تغير ذلك لاحقًا. في الوقت الحالي، دائمًا 1.
  • quiet: إبلاغ عملاء git الآخرين الذين يساعدون في/يعملون على إعادة التأسيس أن إعادة التأسيس يجب أن تتم "بهدوء". يستخدم للتوافق. القيمة الافتراضية هي 1.
  • inmemory: بدء إعادة تأسيس في الذاكرة. يمكن للمتصلين الذين يعملون على إعادة التأسيس المرور عبر خطواتها وتسجيل أي تغييرات، ولكن لا يمكنهم التراجع عن HEAD أو تحديث المستودع. لن يتم تعديل workdir. موجود فقط في إصدارات libgit2 الأحدث من أو تساوي 0.24.0.
  • rewrite_notes_ref: اسم المرجع للملاحظات لاستخدامه لإعادة كتابة ملاحظات الالتزام عند الانتهاء من إعادة التأسيس.
  • merge_opts: خيارات الدمج التي تتحكم في كيفية دمج الأشجار في كل خطوة من خطوات إعادة التأسيس. موجودة فقط في إصدارات libgit2 الأحدث من أو تساوي 0.24.0.
  • checkout_opts: خيارات السحب لكتابة الملفات عند تهيئة إعادة التأسيس، والمرور عبرها، وإلغائها. راجع CheckoutOptions لمزيد من المعلومات.
source
LibGit2.SignatureStructType
LibGit2.SignatureStruct

توقيع الإجراء (مثل الملتزمين، المعلّقين، إلخ). يتطابق مع هيكل git_signature.

تمثل الحقول:

  • name: الاسم الكامل للملتزم أو مؤلف الالتزام.
  • email: البريد الإلكتروني الذي يمكن الاتصال بالملتزم/المؤلف من خلاله.
  • when: هيكل TimeStruct يشير إلى متى تم تأليف/التزام الالتزام في المستودع.
source
LibGit2.StatusEntryType
LibGit2.StatusEntry

يوفر الفروقات بين الملف كما هو موجود في HEAD والفهرس، ويوفر الفروقات بين الفهرس ودليل العمل. يتطابق مع بنية git_status_entry.

تمثل الحقول:

  • status: تحتوي على علامات الحالة للملف، مما يشير إلى ما إذا كان حاليًا، أو تم تغييره بطريقة ما في الفهرس أو شجرة العمل.
  • head_to_index: مؤشر إلى DiffDelta الذي ي encapsulates الفروقات بين الملف كما هو موجود في HEAD وفي الفهرس.
  • index_to_workdir: مؤشر إلى DiffDelta الذي ي encapsulates الفروقات بين الملف كما هو موجود في الفهرس وفي workdir.
source
LibGit2.StatusOptionsType
LibGit2.StatusOptions

خيارات للتحكم في كيفية إصدار git_status_foreach_ext() لاستدعاءات رد الفعل. يتطابق مع هيكل git_status_opt_t.

تمثل الحقول:

  • version: إصدار الهيكل المستخدم، في حال تغير هذا لاحقًا. في الوقت الحالي، دائمًا 1.
  • show: علامة تحدد الملفات التي يجب فحصها وترتيبها. القيمة الافتراضية هي Consts.STATUS_SHOW_INDEX_AND_WORKDIR.
  • flags: علامات للتحكم في أي استدعاءات رد فعل مستخدمة في استدعاء الحالة.
  • pathspec: مصفوفة من المسارات لاستخدامها في مطابقة المسارات. سيتغير سلوك مطابقة المسارات اعتمادًا على قيم show و flags.
  • baseline: الشجرة التي ستستخدم للمقارنة مع دليل العمل والفهرس؛ القيمة الافتراضية هي HEAD.
source
LibGit2.StrArrayStructType
LibGit2.StrArrayStruct

تمثيل LibGit2 لمصفوفة من السلاسل النصية. يتطابق مع هيكل git_strarray.

عند جلب البيانات من LibGit2، سيكون الاستخدام النموذجي كما يلي:

sa_ref = Ref(StrArrayStruct())
@check ccall(..., (Ptr{StrArrayStruct},), sa_ref)
res = convert(Vector{String}, sa_ref[])
free(sa_ref)

على وجه الخصوص، لاحظ أنه يجب استدعاء LibGit2.free بعد ذلك على كائن Ref.

بالمقابل، عند تمرير مصفوفة من السلاسل النصية إلى LibGit2، يكون من الأسهل عمومًا الاعتماد على التحويل الضمني:

strs = String[...]
@check ccall(..., (Ptr{StrArrayStruct},), strs)

لاحظ أنه لا حاجة لاستدعاء free حيث يتم تخصيص البيانات بواسطة جوليا.

source
LibGit2.addfileFunction
addfile(cfg::GitConfig, path::AbstractString,
        level::Consts.GIT_CONFIG=Consts.CONFIG_LEVEL_APP,
        repo::Union{GitRepo, Nothing} = nothing,
        force::Bool=false)

أضف ملف تكوين جيت موجود يقع في path إلى GitConfig الحالي cfg. إذا لم يكن الملف موجودًا، فسيتم إنشاؤه.

  • level يحدد مستوى أولوية تكوين جيت ويتم تحديده بواسطة

Consts.GIT_CONFIG.

  • repo هو مستودع اختياري للسماح بتحليل التضمينات الشرطية.
  • إذا كان force هو false وكان هناك تكوين لمستوى الأولوية المعطى موجودًا بالفعل،

فستحدث خطأ في addfile. إذا كان force هو true، فسيتم استبدال التكوين الموجود بالتكوين الموجود في الملف في path.

source
LibGit2.add!Function
add!(repo::GitRepo, files::AbstractString...; flags::Cuint = Consts.INDEX_ADD_DEFAULT)
add!(idx::GitIndex, files::AbstractString...; flags::Cuint = Consts.INDEX_ADD_DEFAULT)

أضف جميع الملفات التي تم تحديد مساراتها بواسطة files إلى الفهرس idx (أو فهرس repo). إذا كان الملف موجودًا بالفعل، فسيتم تحديث إدخال الفهرس. إذا لم يكن الملف موجودًا بالفعل، فسيتم إضافته حديثًا إلى الفهرس. قد تحتوي files على أنماط glob التي سيتم توسيعها وسيتم إضافة أي ملفات مطابقة (ما لم يتم تعيين INDEX_ADD_DISABLE_PATHSPEC_MATCH، انظر أدناه). إذا تم تجاهل ملف (في .gitignore أو في التكوين)، فلن يتم إضافته، ما لم يتم تتبعه بالفعل في الفهرس، وفي هذه الحالة سيتم تحديثه. الوسيطة الرئيسية flags هي مجموعة من علامات البت التي تتحكم في السلوك فيما يتعلق بالملفات المتجاهلة:

  • Consts.INDEX_ADD_DEFAULT - الافتراضي، كما هو موصوف أعلاه.
  • Consts.INDEX_ADD_FORCE - تجاهل قواعد التجاهل الحالية وإجبار إضافة الملف إلى الفهرس حتى لو كان متجاهلاً بالفعل.
  • Consts.INDEX_ADD_CHECK_PATHSPEC - لا يمكن استخدامها في نفس الوقت مع INDEX_ADD_FORCE. تحقق من أن كل ملف في files الذي يوجد على القرص ليس في قائمة التجاهل. إذا كان أحد الملفات مُتجاهلاً، ستعيد الدالة EINVALIDSPEC.
  • Consts.INDEX_ADD_DISABLE_PATHSPEC_MATCH - إيقاف مطابقة glob، وإضافة الملفات إلى الفهرس التي تتطابق تمامًا مع المسارات المحددة في files.
source
LibGit2.add_fetch!Function
add_fetch!(repo::GitRepo, rmt::GitRemote, fetch_spec::String)

أضف fetch refspec لـ rmt المحدد. ستحتوي هذه refspec على معلومات حول أي فرع (فروع) يجب جلبها.

أمثلة

julia> LibGit2.add_fetch!(repo, remote, "upstream");

julia> LibGit2.fetch_refspecs(remote)
String["+refs/heads/*:refs/remotes/upstream/*"]
source
LibGit2.add_push!Function
add_push!(repo::GitRepo, rmt::GitRemote, push_spec::String)

أضف refspec للدفع لـ rmt المحدد. ستحتوي هذه الـ refspec على معلومات حول أي فرع (فروع) يجب دفعها.

أمثلة

julia> LibGit2.add_push!(repo, remote, "refs/heads/master");

julia> remote = LibGit2.get(LibGit2.GitRemote, repo, branch);

julia> LibGit2.push_refspecs(remote)
String["refs/heads/master"]

!!! ملاحظة قد تحتاج إلى close وإعادة فتح GitRemote المعني بعد تحديث refspecs الدفع الخاصة به لكي يسري التغيير ولتعمل استدعاءات push.

source
LibGit2.addblob!Function
LibGit2.addblob!(repo::GitRepo, path::AbstractString)

اقرأ الملف في path وأضفه إلى قاعدة بيانات الكائنات في repo ككائن غير مضغوط. ارجع GitHash للكائن الناتج.

أمثلة

hash_str = string(commit_oid)
blob_file = joinpath(repo_path, ".git", "objects", hash_str[1:2], hash_str[3:end])
id = LibGit2.addblob!(repo, blob_file)
source
LibGit2.authorFunction
author(c::GitCommit)

إرجاع Signature لمؤلف الالتزام c. المؤلف هو الشخص الذي أجرى تغييرات على الملف (الملفات) ذات الصلة. انظر أيضًا committer.

source
LibGit2.authorsFunction
authors(repo::GitRepo) -> Vector{Signature}

إرجاع جميع مؤلفي الالتزامات إلى مستودع repo.

أمثلة

repo = LibGit2.GitRepo(repo_path)
repo_file = open(joinpath(repo_path, test_file), "a")

println(repo_file, commit_msg)
flush(repo_file)
LibGit2.add!(repo, test_file)
sig = LibGit2.Signature("TEST", "TEST@TEST.COM", round(time(), 0), 0)
commit_oid1 = LibGit2.commit(repo, "commit1"; author=sig, committer=sig)
println(repo_file, randstring(10))
flush(repo_file)
LibGit2.add!(repo, test_file)
commit_oid2 = LibGit2.commit(repo, "commit2"; author=sig, committer=sig)

# سيكون مصفوفة من [sig, sig]
auths = LibGit2.authors(repo)
source
LibGit2.branchFunction
branch(repo::GitRepo)

يعادل git branch. أنشئ فرعًا جديدًا من HEAD الحالي.

source
LibGit2.branch!Function
branch!(repo::GitRepo, branch_name::AbstractString, commit::AbstractString=""; kwargs...)

قم بإنشاء فرع جديد في مستودع repo. commit هو GitHash، في شكل سلسلة، والذي سيكون بداية الفرع الجديد. إذا كانت commit سلسلة فارغة، سيتم استخدام HEAD الحالي.

تكون وسائط الكلمات الرئيسية كما يلي:

  • track::AbstractString="": اسم الفرع البعيد الذي يجب أن يتعقب هذا الفرع الجديد، إن وجد. إذا كانت فارغة (وهي القيمة الافتراضية)، فلن يتم تتبع أي فرع بعيد.
  • force::Bool=false: إذا كانت true، سيتم فرض إنشاء الفرع.
  • set_head::Bool=true: إذا كانت true، بعد الانتهاء من إنشاء الفرع، سيتم تعيين رأس الفرع كـ HEAD لـ repo.

يعادل git checkout [-b|-B] <branch_name> [<commit>] [--track <track>].

أمثلة

repo = LibGit2.GitRepo(repo_path)
LibGit2.branch!(repo, "new_branch", set_head=false)
source
LibGit2.checkout!Function
checkout!(repo::GitRepo, commit::AbstractString=""; force::Bool=true)

يعادل git checkout [-f] --detach <commit>. قم بتغيير حالة git إلى الالتزام commit (وهو GitHash في شكل سلسلة) في repo. إذا كانت force تساوي true، فقم بفرض التغيير وتجاهل أي تغييرات حالية. لاحظ أن هذا يفصل HEAD الحالي.

أمثلة

repo = LibGit2.GitRepo(repo_path)
open(joinpath(LibGit2.path(repo), "file1"), "w") do f
    write(f, "111
")
end
LibGit2.add!(repo, "file1")
commit_oid = LibGit2.commit(repo, "add file1")
open(joinpath(LibGit2.path(repo), "file1"), "w") do f
    write(f, "112
")
end
# سيفشل بدون force=true
# حيث توجد تعديلات على الملف
LibGit2.checkout!(repo, string(commit_oid), force=true)
source
LibGit2.cloneFunction
clone(repo_url::AbstractString, repo_path::AbstractString, clone_opts::CloneOptions)

استنساخ المستودع البعيد عند repo_url (الذي يمكن أن يكون عنوان URL بعيد أو مسار على نظام الملفات المحلي) إلى repo_path (الذي يجب أن يكون مسارًا على نظام الملفات المحلي). يتم تعيين خيارات الاستنساخ، مثل ما إذا كان يجب إجراء استنساخ عاري أم لا، بواسطة CloneOptions.

أمثلة

repo_url = "https://github.com/JuliaLang/Example.jl"
repo = LibGit2.clone(repo_url, "/home/me/projects/Example")
source
clone(repo_url::AbstractString, repo_path::AbstractString; kwargs...)

استنساخ مستودع بعيد يقع في repo_url إلى موقع نظام الملفات المحلي repo_path.

تكون وسائط الكلمات الرئيسية كما يلي:

  • branch::AbstractString="": أي فرع من المستودع البعيد لاستنساخه، إذا لم يكن الفرع الافتراضي للمستودع (عادةً master).
  • isbare::Bool=false: إذا كانت true، استنساخ البعيد كمستودع عاري، مما يجعل repo_path نفسه هو دليل git بدلاً من repo_path/.git. هذا يعني أنه لا يمكن التحقق من شجرة العمل. يلعب دور وسيط سطر أوامر git --bare.
  • remote_cb::Ptr{Cvoid}=C_NULL: رد نداء سيتم استخدامه لإنشاء البعيد قبل استنساخه. إذا كانت C_NULL (الافتراضي)، فلن يتم محاولة إنشاء البعيد - سيتم افتراض أنه موجود بالفعل.
  • credentials::Creds=nothing: يوفر بيانات الاعتماد و/أو الإعدادات عند المصادقة ضد مستودع خاص.
  • callbacks::Callbacks=Callbacks(): ردود نداء وبيانات مقدمة من المستخدم.

معادل لـ git clone [-b <branch>] [--bare] <repo_url> <repo_path>.

أمثلة

repo_url = "https://github.com/JuliaLang/Example.jl"
repo1 = LibGit2.clone(repo_url, "test_path")
repo2 = LibGit2.clone(repo_url, "test_path", isbare=true)
julia_url = "https://github.com/JuliaLang/julia"
julia_repo = LibGit2.clone(julia_url, "julia_path", branch="release-0.6")
source
LibGit2.commitFunction
commit(repo::GitRepo, msg::AbstractString; kwargs...) -> GitHash

غلاف حول git_commit_create. إنشاء التزام في المستودع repo. msg هو رسالة الالتزام. إرجاع OID من الالتزام الجديد.

تكون وسائط الكلمات الرئيسية كما يلي:

  • refname::AbstractString=Consts.HEAD_FILE: إذا لم يكن NULL، اسم المرجع الذي سيتم تحديثه للإشارة إلى الالتزام الجديد. على سبيل المثال، "HEAD" سيقوم بتحديث HEAD للفرع الحالي. إذا لم يكن المرجع موجودًا بعد، فسيتم إنشاؤه.
  • author::Signature = Signature(repo) هو Signature يحتوي على معلومات حول الشخص الذي قام بتأليف الالتزام.
  • committer::Signature = Signature(repo) هو Signature يحتوي على معلومات حول الشخص الذي قام بالتزام الالتزام في المستودع. ليس بالضرورة نفس الشخص كـ author، على سبيل المثال إذا قام author بإرسال تصحيح إلى committer الذي قام بالتزامه.
  • tree_id::GitHash = GitHash() هو شجرة git لاستخدامها لإنشاء الالتزام، تظهر أسلافه وعلاقته بأي تاريخ آخر. يجب أن تنتمي tree إلى repo.
  • parent_ids::Vector{GitHash}=GitHash[] هي قائمة من الالتزامات بواسطة GitHash لاستخدامها كالتزامات والد للالتزام الجديد، ويمكن أن تكون فارغة. قد يحتوي الالتزام على عدة آباء إذا كان التزام دمج، على سبيل المثال.
source
LibGit2.commit(rb::GitRebase, sig::GitSignature)

قم بارتكاب التصحيح الحالي إلى إعادة التأسيس rb، باستخدام sig كالمُرتكب. يكون صامتًا إذا تم تطبيق الالتزام بالفعل.

source
LibGit2.committerFunction
committer(c::GitCommit)

إرجاع Signature الملتزم بالتزام c. الملتزم هو الشخص الذي قام بالتغييرات التي كتبها في الأصل author، ولكن قد لا يكون هو نفسه author، على سبيل المثال، إذا قام author بإرسال تصحيح إلى committer الذي قام بالتزامه.

source
LibGit2.countFunction
LibGit2.count(f::Function, walker::GitRevWalker; oid::GitHash=GitHash(), by::Cint=Consts.SORT_NONE, rev::Bool=false)

باستخدام GitRevWalker walker لـ "المشي" عبر كل التزامات في تاريخ المستودع، ابحث عن عدد الالتزامات التي تعيد true عند تطبيق f عليها. المعاملات الرئيسية هي: * oid: GitHash للالتزام الذي تبدأ منه المشي. الافتراضي هو استخدام push_head! وبالتالي الالتزام HEAD وجميع أسلافه. * by: طريقة الفرز. الافتراضي هو عدم الفرز. الخيارات الأخرى هي الفرز حسب الهيكلية (LibGit2.Consts.SORT_TOPOLOGICAL)، للفرز للأمام في الوقت (LibGit2.Consts.SORT_TIME، الأقدم أولاً) أو للفرز للخلف في الوقت (LibGit2.Consts.SORT_REVERSE، الأحدث أولاً). * rev: ما إذا كان يجب عكس ترتيب الفرز (على سبيل المثال، إذا تم استخدام الفرز الهيكلي).

أمثلة

cnt = LibGit2.with(LibGit2.GitRevWalker(repo)) do walker
    LibGit2.count((oid, repo)->(oid == commit_oid1), walker, oid=commit_oid1, by=LibGit2.Consts.SORT_TIME)
end

LibGit2.count يجد عدد الالتزامات على طول المشي مع GitHash معين commit_oid1، بدءًا من ذلك الالتزام والتحرك للأمام في الوقت منه. نظرًا لأن GitHash فريد لالتزام، سيكون cnt هو 1.

source
LibGit2.counthunksFunction
counthunks(blame::GitBlame)

إرجاع عدد "الحزم" المميزة مع ملف. قد تحتوي الحزمة على عدة أسطر. الحزمة عادةً ما تكون قطعة من ملف تم إضافتها/تغييرها/إزالتها معًا، على سبيل المثال، دالة تمت إضافتها إلى ملف المصدر أو حلقة داخلية تم تحسينها من تلك الدالة لاحقًا.

source
LibGit2.create_branchFunction
LibGit2.create_branch(repo::GitRepo, bname::AbstractString, commit_obj::GitCommit; force::Bool=false)

إنشاء فرع جديد في المستودع repo بالاسم bname، الذي يشير إلى الالتزام commit_obj (الذي يجب أن يكون جزءًا من repo). إذا كانت force تساوي true، سيتم الكتابة فوق فرع موجود يحمل الاسم bname إذا كان موجودًا. إذا كانت force تساوي false وكان هناك فرع موجود بالفعل يحمل الاسم bname، ستقوم هذه الدالة بإلقاء خطأ.

source
LibGit2.credentials_callbackFunction
credential_callback(...) -> Cint

دالة رد الاتصال الخاصة ببيانات الاعتماد في LibGit2 والتي توفر وظائف مختلفة لاكتساب بيانات الاعتماد بالنسبة لبروتوكول الاتصال. يجب أن يحتوي payload_ptr على كائن LibGit2.CredentialPayload الذي سيتتبع الحالة والإعدادات.

تحتوي allowed_types على قناع بت من قيم LibGit2.Consts.GIT_CREDTYPE التي تحدد طرق المصادقة التي يجب تجربتها.

تتم مصادقة بيانات الاعتماد بالترتيب التالي (إذا كانت مدعومة):

  • وكيل SSH
  • زوج مفاتيح SSH الخاصة/العامة
  • اسم المستخدم/كلمة المرور نص عادي

إذا تم تقديم موجه بيانات الاعتماد للمستخدم، يمكنهم إلغاء الموجه عن طريق كتابة ^D (الضغط على مفتاح التحكم مع مفتاح d).

ملاحظة: بسبب خصوصيات إجراء مصادقة libgit2، عندما تفشل المصادقة، يتم استدعاء هذه الدالة مرة أخرى دون أي إشارة إلى ما إذا كانت المصادقة ناجحة أم لا. لتجنب حلقة لانهائية من استخدام بيانات الاعتماد الخاطئة بشكل متكرر، سنقوم بتتبع الحالة باستخدام الحمولة.

للحصول على تفاصيل إضافية، راجع دليل LibGit2 حول المصادقة ضد خادم.

source
LibGit2.delete_branchFunction
LibGit2.delete_branch(branch::GitReference)

احذف الفرع المشار إليه بواسطة branch.

source
LibGit2.diff_filesFunction
diff_files(repo::GitRepo, branch1::AbstractString, branch2::AbstractString; kwarg...) -> Vector{AbstractString}

أظهر الملفات التي تغيرت في مستودع git repo بين الفرعين branch1 و branch2.

وسيط الكلمة الرئيسية هو:

  • filter::Set{Consts.DELTA_STATUS}=Set([Consts.DELTA_ADDED, Consts.DELTA_MODIFIED, Consts.DELTA_DELETED]))، ويحدد خيارات الفرق. القيمة الافتراضية هي عرض الملفات المضافة أو المعدلة أو المحذوفة.

أعد فقط أسماء الملفات التي تغيرت، وليس محتوياتها.

أمثلة

LibGit2.branch!(repo, "branch/a")
LibGit2.branch!(repo, "branch/b")
# أضف ملفًا إلى المستودع
open(joinpath(LibGit2.path(repo),"file"),"w") do f
    write(f, "hello repo
")
end
LibGit2.add!(repo, "file")
LibGit2.commit(repo, "add file")
# يعيد ["file"]
filt = Set([LibGit2.Consts.DELTA_ADDED])
files = LibGit2.diff_files(repo, "branch/a", "branch/b", filter=filt)
# يعيد [] لأن الملفات الموجودة لم يتم تعديلها
filt = Set([LibGit2.Consts.DELTA_MODIFIED])
files = LibGit2.diff_files(repo, "branch/a", "branch/b", filter=filt)

معادل لـ git diff --name-only --diff-filter=<filter> <branch1> <branch2>.

source
LibGit2.entrytypeFunction
entrytype(te::GitTreeEntry)

إرجاع نوع الكائن الذي يشير إليه te. ستكون النتيجة واحدة من الأنواع التي ترجعها objtype، مثل GitTree أو GitBlob.

source
LibGit2.fetchFunction
fetch(rmt::GitRemote, refspecs; options::FetchOptions=FetchOptions(), msg="")

استرجع من مستودع git البعيد المحدد rmt، باستخدام refspecs لتحديد أي فرع (فروع) بعيدة لاسترجاعها. المعاملات الرئيسية هي:

  • options: تحدد الخيارات للاسترجاع، مثل ما إذا كان يجب التقليم بعد ذلك. انظر FetchOptions لمزيد من المعلومات.
  • msg: رسالة لإدراجها في سجلات الإنعكاس.
source
fetch(repo::GitRepo; kwargs...)

يجلب التحديثات من مصدر مستودع repo.

تكون وسائط الكلمات الرئيسية كما يلي:

  • remote::AbstractString="origin": أي مصدر، محدد بالاسم، من repo لجلب البيانات منه. إذا كان هذا فارغًا، سيتم استخدام عنوان URL لإنشاء مصدر مجهول.
  • remoteurl::AbstractString="": عنوان URL لـ remote. إذا لم يتم تحديده، سيتم افتراضه بناءً على الاسم المعطى لـ remote.
  • refspecs=AbstractString[]: يحدد خصائص الجلب.
  • credentials=nothing: يوفر بيانات الاعتماد و/أو الإعدادات عند المصادقة ضد remote خاص.
  • callbacks=Callbacks(): ردود الفعل والحمولات المقدمة من المستخدم.

يعادل git fetch [<remoteurl>|<repo>] [<refspecs>].

source
LibGit2.fetchheadsFunction
fetchheads(repo::GitRepo) -> Vector{FetchHead}

إرجاع قائمة بجميع رؤوس الجلب لـ repo، كل منها ممثلة كـ FetchHead، بما في ذلك أسمائها، وعناوين URL، وحالات الدمج.

أمثلة

julia> fetch_heads = LibGit2.fetchheads(repo);

julia> fetch_heads[1].name
"refs/heads/master"

julia> fetch_heads[1].ismerge
true

julia> fetch_heads[2].name
"refs/heads/test_branch"

julia> fetch_heads[2].ismerge
false
source
LibGit2.fetch_refspecsFunction
fetch_refspecs(rmt::GitRemote) -> Vector{String}

احصل على fetch refspecs لـ rmt المحدد. تحتوي هذه refspecs على معلومات حول أي فرع (فروع) يجب جلبها.

أمثلة

julia> remote = LibGit2.get(LibGit2.GitRemote, repo, "upstream");

julia> LibGit2.add_fetch!(repo, remote, "upstream");

julia> LibGit2.fetch_refspecs(remote)
String["+refs/heads/*:refs/remotes/upstream/*"]
source
LibGit2.merge_baseFunction
merge_base(repo::GitRepo, one::AbstractString, two::AbstractString) -> GitHash

ابحث عن قاعدة الدمج (سلف مشترك) بين الالتزامات one و two. قد تكون one و two كلاهما في شكل سلسلة. أعد GitHash لقاعدة الدمج.

source
LibGit2.merge!Method
merge!(repo::GitRepo; kwargs...) -> Bool

قم بإجراء دمج git على المستودع repo، حيث يتم دمج الالتزامات ذات التاريخ المتباين في الفرع الحالي. ارجع true إذا نجح الدمج، وfalse إذا لم ينجح.

تكون وسائط الكلمات الرئيسية هي:

  • committish::AbstractString="": دمج الالتزام (الالتزامات) المسماة في committish.
  • branch::AbstractString="": دمج الفرع branch وجميع التزاماتها منذ أن تباينت عن الفرع الحالي.
  • fastforward::Bool=false: إذا كانت fastforward تساوي true، قم بالدمج فقط إذا كان الدمج هو دمج سريع (رأس الفرع الحالي هو سلف للالتزامات التي سيتم دمجها)، وإلا ارفض الدمج وارجع false. هذا يعادل خيار CLI git --ff-only.
  • merge_opts::MergeOptions=MergeOptions(): تحدد merge_opts خيارات الدمج، مثل استراتيجية الدمج في حالة حدوث تعارضات.
  • checkout_opts::CheckoutOptions=CheckoutOptions(): تحدد checkout_opts خيارات لخطوة التحقق.

يعادل git merge [--ff-only] [<committish> | <branch>].

!!! ملاحظة إذا قمت بتحديد branch، يجب القيام بذلك بصيغة المرجع، حيث سيتم تحويل السلسلة إلى GitReference. على سبيل المثال، إذا كنت ترغب في دمج الفرع branch_a، يمكنك استدعاء merge!(repo, branch="refs/heads/branch_a").

source
LibGit2.merge!Method
merge!(repo::GitRepo, anns::Vector{GitAnnotated}; kwargs...) -> Bool

دمج التغييرات من الالتزامات المعلّمة (المُلتقطة ككائنات GitAnnotated) anns في HEAD من المستودع repo. المعاملات الرئيسية هي:

  • merge_opts::MergeOptions = MergeOptions(): خيارات حول كيفية إجراء الدمج، بما في ذلك ما إذا كان يُسمح بالتقدم السريع. انظر MergeOptions لمزيد من المعلومات.
  • checkout_opts::CheckoutOptions = CheckoutOptions(): خيارات حول كيفية إجراء عملية السحب. انظر CheckoutOptions لمزيد من المعلومات.

يمكن أن تشير anns إلى رؤوس فروع محلية أو بعيدة. ارجع true إذا كان الدمج ناجحًا، وإلا ارجع false (على سبيل المثال، إذا لم يكن الدمج ممكنًا لأن الفروع ليس لها سلف مشترك).

أمثلة

upst_ann = LibGit2.GitAnnotated(repo, "branch/a")

# دمج الفرع
LibGit2.merge!(repo, [upst_ann])
source
LibGit2.merge!Method
merge!(repo::GitRepo, anns::Vector{GitAnnotated}, fastforward::Bool; kwargs...) -> Bool

ادمج التغييرات من الالتزامات المعلّمة (المسجلة ككائنات GitAnnotated) anns في HEAD من المستودع repo. إذا كان fastforward هو true، فإن الدمج السريع فقط مسموح به. في هذه الحالة، إذا حدثت تعارضات، سيفشل الدمج. خلاف ذلك، إذا كان fastforward هو false، قد ينتج عن الدمج ملف تعارض يحتاج المستخدم إلى حله.

تكون وسائط الكلمات الرئيسية هي:

  • merge_opts::MergeOptions = MergeOptions(): خيارات لكيفية إجراء الدمج، بما في ذلك ما إذا كان الدمج السريع مسموحًا به. راجع MergeOptions لمزيد من المعلومات.
  • checkout_opts::CheckoutOptions = CheckoutOptions(): خيارات لكيفية إجراء عملية السحب. راجع CheckoutOptions لمزيد من المعلومات.

يمكن أن تشير anns إلى رؤوس فروع محلية أو بعيدة. ارجع true إذا كان الدمج ناجحًا، وإلا ارجع false (على سبيل المثال، إذا لم يكن الدمج ممكنًا لأن الفروع ليس لها سلف مشترك).

أمثلة

upst_ann_1 = LibGit2.GitAnnotated(repo, "branch/a")

# دمج الفرع، دمج سريع
LibGit2.merge!(repo, [upst_ann_1], true)

# تعارضات في الدمج!
upst_ann_2 = LibGit2.GitAnnotated(repo, "branch/b")
# دمج الفرع، حاول الدمج السريع
LibGit2.merge!(repo, [upst_ann_2], true) # ستعيد false
LibGit2.merge!(repo, [upst_ann_2], false) # ستعيد true
source
LibGit2.ffmerge!Function
ffmerge!(repo::GitRepo, ann::GitAnnotated)

دمج سريع التقدم التغييرات في HEAD الحالي. هذا ممكن فقط إذا كانت الالتزام المشار إليه بواسطة ann هو من نسل HEAD الحالي (على سبيل المثال، إذا كنت تسحب تغييرات من فرع بعيد والذي هو ببساطة متقدم عن طرف الفرع المحلي).

source
LibGit2.fullnameFunction
LibGit2.fullname(ref::GitReference)

إرجاع اسم المرجع المشار إليه بواسطة المرجع الرمزي ref. إذا لم يكن ref مرجعًا رمزيًا، إرجع سلسلة فارغة.

source
LibGit2.featuresFunction
features()

إرجاع قائمة بميزات git التي يدعمها الإصدار الحالي من libgit2، مثل الخيوط أو استخدام HTTPS أو SSH.

source
LibGit2.filenameFunction
filename(te::GitTreeEntry)

إرجاع اسم الملف للكائن الموجود على القرص الذي يشير إليه te.

source
LibGit2.filemodeFunction
filemode(te::GitTreeEntry) -> Cint

إرجاع وضع ملف UNIX للكائن الموجود على القرص الذي يشير إليه te كعدد صحيح.

source
LibGit2.gitdirFunction
LibGit2.gitdir(repo::GitRepo)

إرجاع موقع ملفات "git" الخاصة بـ repo:

  • بالنسبة للمستودعات العادية، هذا هو موقع مجلد .git.
  • بالنسبة للمستودعات العارية، هذا هو موقع المستودع نفسه.

انظر أيضًا workdir، path.

source
LibGit2.git_urlFunction
LibGit2.git_url(; kwargs...) -> String

قم بإنشاء سلسلة بناءً على مكونات URL المقدمة. عندما لا يتم توفير الكلمة الرئيسية scheme، سيستخدم URL الناتج بدلاً من ذلك الصيغة الشبيهة بـ scp.

الكلمات الرئيسية

  • scheme::AbstractString="": بروتوكول URL الذي يحدد البروتوكول المراد استخدامه. لاستخدام HTTP، استخدم "http"، ولـ SSH استخدم "ssh"، إلخ. عندما لا يتم توفير scheme، سيكون تنسيق الإخراج "ssh" ولكن باستخدام الصيغة الشبيهة بـ scp.
  • username::AbstractString="": اسم المستخدم الذي سيتم استخدامه في الإخراج إذا تم توفيره.
  • password::AbstractString="": كلمة المرور التي سيتم استخدامها في الإخراج إذا تم توفيرها.
  • host::AbstractString="": اسم المضيف الذي سيتم استخدامه في الإخراج. يجب تحديد اسم المضيف.
  • port::Union{AbstractString,Integer}="": رقم المنفذ الذي سيتم استخدامه في الإخراج إذا تم توفيره. لا يمكن تحديده عند استخدام الصيغة الشبيهة بـ scp.
  • path::AbstractString="": المسار الذي سيتم استخدامه في الإخراج إذا تم توفيره.

!!! تحذير تجنب استخدام كلمات المرور في عناوين URL. على عكس كائنات الاعتماد، لا تستطيع جوليا تأمين الصفر أو تدمير البيانات الحساسة بعد الاستخدام، وقد تبقى كلمة المرور في الذاكرة؛ مما قد يؤدي إلى تعرضها من خلال ذاكرة غير مهيأة.

أمثلة

julia> LibGit2.git_url(username="git", host="github.com", path="JuliaLang/julia.git")
"git@github.com:JuliaLang/julia.git"

julia> LibGit2.git_url(scheme="https", host="github.com", path="/JuliaLang/julia.git")
"https://github.com/JuliaLang/julia.git"

julia> LibGit2.git_url(scheme="ssh", username="git", host="github.com", port=2222, path="JuliaLang/julia.git")
"ssh://git@github.com:2222/JuliaLang/julia.git"
source
LibGit2.@githash_strMacro
@githash_str -> AbstractGitHash

قم بإنشاء كائن تجزئة git من السلسلة المعطاة، مع إرجاع GitShortHash إذا كانت السلسلة أقصر من 40 رقمًا سداسيًا، وإلا إرجاع GitHash.

أمثلة

julia> LibGit2.githash"d114feb74ce633"
GitShortHash("d114feb74ce633")

julia> LibGit2.githash"d114feb74ce63307afe878a5228ad014e0289a85"
GitHash("d114feb74ce63307afe878a5228ad014e0289a85")
source
LibGit2.headFunction
LibGit2.head(repo::GitRepo) -> GitReference

إرجاع GitReference إلى HEAD الحالي لـ repo.

source
head(pkg::AbstractString) -> String

إرجاع HEAD الحالي GitHash لمستودع pkg كسلسلة.

source
LibGit2.head!Function
LibGit2.head!(repo::GitRepo, ref::GitReference) -> GitReference

قم بتعيين HEAD لـ repo إلى الكائن المشار إليه بواسطة ref.

source
LibGit2.head_oidFunction
LibGit2.head_oid(repo::GitRepo) -> GitHash

ابحث عن معرف الكائن للرأس الحالي لمستودع git repo.

source
LibGit2.headnameFunction
LibGit2.headname(repo::GitRepo)

ابحث عن اسم HEAD الحالي لمستودع git repo. إذا كان repo مفصولًا حاليًا، ارجع اسم HEAD الذي تم فصله عنه.

source
LibGit2.initFunction
LibGit2.init(path::AbstractString, bare::Bool=false) -> GitRepo

افتح مستودع جيت جديد في path. إذا كان bare هو false، سيتم إنشاء شجرة العمل في path/.git. إذا كان bare هو true، فلن يتم إنشاء دليل عمل.

source
LibGit2.is_ancestor_ofFunction
is_ancestor_of(a::AbstractString, b::AbstractString, repo::GitRepo) -> Bool

ارجع true إذا كان a، وهو GitHash في شكل سلسلة، سلفًا لـ b، وهو GitHash في شكل سلسلة.

أمثلة

julia> repo = GitRepo(repo_path);

julia> LibGit2.add!(repo, test_file1);

julia> commit_oid1 = LibGit2.commit(repo, "commit1");

julia> LibGit2.add!(repo, test_file2);

julia> commit_oid2 = LibGit2.commit(repo, "commit2");

julia> LibGit2.is_ancestor_of(string(commit_oid1), string(commit_oid2), repo)
true
source
LibGit2.isbinaryFunction
isbinary(blob::GitBlob) -> Bool

استخدم خوارزمية لتخمين ما إذا كان الملف ثنائيًا: البحث عن بايتات NULL والبحث عن نسبة معقولة من الأحرف القابلة للطباعة إلى الأحرف غير القابلة للطباعة بين أول 8000 بايت.

source
LibGit2.iscommitFunction
iscommit(id::AbstractString, repo::GitRepo) -> Bool

تحقق مما إذا كان الالتزام id (الذي هو GitHash في شكل سلسلة) موجودًا في المستودع.

أمثلة

julia> repo = GitRepo(repo_path);

julia> LibGit2.add!(repo, test_file);

julia> commit_oid = LibGit2.commit(repo, "add test_file");

julia> LibGit2.iscommit(string(commit_oid), repo)
true
source
LibGit2.isdiffFunction
LibGit2.isdiff(repo::GitRepo, treeish::AbstractString, pathspecs::AbstractString=""; cached::Bool=false)

يتحقق مما إذا كانت هناك أي اختلافات بين الشجرة المحددة بواسطة treeish والملفات المتعقبة في شجرة العمل (إذا كان cached=false) أو الفهرس (إذا كان cached=true). pathspecs هي المواصفات للخيارات الخاصة بالفرق.

أمثلة

repo = LibGit2.GitRepo(repo_path)
LibGit2.isdiff(repo, "HEAD") # يجب أن تكون false
open(joinpath(repo_path, new_file), "a") do f
    println(f, "ها هو ملفي الجديد الرائع")
end
LibGit2.isdiff(repo, "HEAD") # الآن true

معادل لـ git diff-index <treeish> [-- <pathspecs>]. ```

source
LibGit2.isdirtyFunction
LibGit2.isdirty(repo::GitRepo, pathspecs::AbstractString=""; cached::Bool=false) -> Bool

تحقق مما إذا كانت هناك أي تغييرات في الملفات المتعقبة في شجرة العمل (إذا كان cached=false) أو الفهرس (إذا كان cached=true). pathspecs هي المواصفات للخيارات الخاصة بالفرق.

أمثلة

repo = LibGit2.GitRepo(repo_path)
LibGit2.isdirty(repo) # يجب أن تكون false
open(joinpath(repo_path, new_file), "a") do f
    println(f, "ها هو ملفي الجديد الرائع")
end
LibGit2.isdirty(repo) # الآن true
LibGit2.isdirty(repo, new_file) # الآن true

معادل لـ git diff-index HEAD [-- <pathspecs>].

source
LibGit2.isorphanFunction
LibGit2.isorphan(repo::GitRepo)

تحقق مما إذا كانت الفرع الحالي هو فرع "يتيم"، أي أنه ليس له أي التزامات. سيكون الالتزام الأول في هذا الفرع بلا آباء.

source
LibGit2.issetFunction
isset(val::Integer, flag::Integer)

اختبر ما إذا كانت بتات val التي يتم فهرستها بواسطة flag مضبوطة (1) أو غير مضبوطة (0).

source
LibGit2.iszeroFunction
iszero(id::GitHash) -> Bool

حدد ما إذا كانت جميع الأرقام السداسية عشرية للـ GitHash المعطى تساوي صفر.

source
LibGit2.lookup_branchFunction
lookup_branch(repo::GitRepo, branch_name::AbstractString, remote::Bool=false) -> Union{GitReference, Nothing}

حدد ما إذا كان الفرع المحدد بواسطة branch_name موجودًا في المستودع repo. إذا كان remote هو true، يُفترض أن repo هو مستودع جيت بعيد. خلاف ذلك، فهو جزء من نظام الملفات المحلي.

إرجاع إما GitReference للفرع المطلوب إذا كان موجودًا، أو nothing إذا لم يكن كذلك.

source
LibGit2.mapFunction
LibGit2.map(f::Function, walker::GitRevWalker; oid::GitHash=GitHash(), range::AbstractString="", by::Cint=Consts.SORT_NONE, rev::Bool=false)

باستخدام GitRevWalker walker لـ "المشي" عبر كل التزامات في تاريخ المستودع، قم بتطبيق f على كل التزام في المسار. المعاملات الرئيسية هي: * oid: GitHash للتزام البدء من المشي. الافتراضي هو استخدام push_head! وبالتالي التزام HEAD وجميع أسلافه. * range: نطاق من GitHashs بتنسيق oid1..oid2. سيتم تطبيق f على جميع الالتزامات بين الاثنين. * by: طريقة الفرز. الافتراضي هو عدم الفرز. الخيارات الأخرى هي الفرز حسب الهيكل (LibGit2.Consts.SORT_TOPOLOGICAL)، للفرز للأمام في الوقت (LibGit2.Consts.SORT_TIME، الأقدم أولاً) أو للفرز للخلف في الوقت (LibGit2.Consts.SORT_REVERSE، الأحدث أولاً). * rev: ما إذا كان يجب عكس ترتيب الفرز (على سبيل المثال، إذا تم استخدام الفرز الهيكلي).

أمثلة

oids = LibGit2.with(LibGit2.GitRevWalker(repo)) do walker
    LibGit2.map((oid, repo)->string(oid), walker, by=LibGit2.Consts.SORT_TIME)
end

هنا، يقوم LibGit2.map بزيارة كل التزام باستخدام GitRevWalker ويجد GitHash الخاص به.

source
LibGit2.mirror_callbackFunction

دالة رد الاتصال المرآة

تقوم الدالة بتعيين +refs/*:refs/* refspecs وعلم mirror للمرجع البعيد.

source
LibGit2.messageFunction
message(c::GitCommit, raw::Bool=false)

إرجاع رسالة الالتزام التي تصف التغييرات التي تم إجراؤها في الالتزام c. إذا كان raw هو false، إرجع رسالة "منظفة" قليلاً (والتي تمت إزالة أي أسطر جديدة في البداية منها). إذا كان raw هو true، فإن الرسالة لا يتم إزالة أي من هذه الأسطر الجديدة.

source
LibGit2.merge_analysisFunction
merge_analysis(repo::GitRepo, anns::Vector{GitAnnotated}) -> analysis, preference

قم بتشغيل التحليل على الفروع المشار إليها بواسطة نصوص الفروع المعلّقة anns وحدد تحت أي ظروف يمكن دمجها. على سبيل المثال، إذا كانت anns[1] ببساطة سلفًا لـ ann[2]، فإن merge_analysis سيبلغ أن دمجًا سريعًا ممكن.

أعد مخرجان، analysis و preference. يحتوي analysis على عدة قيم ممكنة:

  • MERGE_ANALYSIS_NONE: لا يمكن دمج عناصر anns.
  • MERGE_ANALYSIS_NORMAL: دمج عادي، عندما يكون HEAD والالتزامات التي يرغب المستخدم في دمجها قد تباعدت جميعًا عن سلف مشترك. في هذه الحالة، يجب حل التغييرات وقد تحدث تعارضات.
  • MERGE_ANALYSIS_UP_TO_DATE: يمكن الوصول إلى جميع الالتزامات المدخلة التي يرغب المستخدم في دمجها من HEAD، لذا لا حاجة لإجراء دمج.
  • MERGE_ANALYSIS_FASTFORWARD: الالتزام المدخل هو سليل لـ HEAD وبالتالي لا حاجة لإجراء دمج - بدلاً من ذلك، يمكن للمستخدم ببساطة التحقق من الالتزام (الالتزامات) المدخلة.
  • MERGE_ANALYSIS_UNBORN: يشير HEAD من المستودع إلى التزام غير موجود. لا يمكن الدمج، ولكن قد يكون من الممكن التحقق من الالتزامات المدخلة.

كما أن preference يحتوي على عدة قيم ممكنة:

  • MERGE_PREFERENCE_NONE: ليس لدى المستخدم تفضيل.
  • MERGE_PREFERENCE_NO_FASTFORWARD: لا تسمح بأي عمليات دمج سريعة.
  • MERGE_PREFERENCE_FASTFORWARD_ONLY: تسمح فقط بعمليات الدمج السريعة ولا نوع آخر (قد يؤدي إلى تعارضات). يمكن التحكم في preference من خلال إعدادات git الخاصة بالمستودع أو العالمية.
source
LibGit2.nameFunction
LibGit2.name(ref::GitReference)

إرجاع الاسم الكامل لـ ref.

source
name(rmt::GitRemote)

احصل على اسم مستودع بعيد، على سبيل المثال "origin". إذا كان المستودع البعيد مجهول الهوية (انظر GitRemoteAnon) سيكون الاسم سلسلة فارغة "".

أمثلة

julia> repo_url = "https://github.com/JuliaLang/Example.jl";

julia> repo = LibGit2.clone(cache_repo, "test_directory");

julia> remote = LibGit2.GitRemote(repo, "origin", repo_url);

julia> name(remote)
"origin"
source
LibGit2.name(tag::GitTag)

اسم tag (على سبيل المثال، "v0.5").

source
LibGit2.need_updateFunction
need_update(repo::GitRepo)

معادل لـ git update-index. يُرجع true إذا كان repo يحتاج إلى تحديث.

source
LibGit2.objtypeFunction
objtype(obj_type::Consts.OBJECT)

إرجاع النوع المقابل لقيمة التعداد.

source
LibGit2.pathFunction
LibGit2.path(repo::GitRepo)

إرجاع مسار الملف الأساسي لمستودع repo.

  • بالنسبة للمستودعات العادية، سيكون هذا عادةً الدليل الأب لمجلد ".git" (ملاحظة: قد يكون هذا مختلفًا عن دليل العمل، انظر workdir لمزيد من التفاصيل).
  • بالنسبة للمستودعات العارية، يكون هذا هو موقع ملفات "git".

انظر أيضًا gitdir، workdir.

source
LibGit2.peelFunction
peel([T,] ref::GitReference)

قم بتقشير ref بشكل متكرر حتى يتم الحصول على كائن من النوع T. إذا لم يتم توفير T، فسيتم تقشير ref حتى يتم الحصول على كائن غير GitTag.

  • سيتم تقشير GitTag إلى الكائن الذي يشير إليه.
  • سيتم تقشير GitCommit إلى GitTree.

!!! ملاحظة يمكن تقشير العلامات المعلنة فقط إلى كائنات GitTag. العلامات الخفيفة (الافتراضية) هي مراجع تحت refs/tags/ التي تشير مباشرة إلى كائنات GitCommit.

source
peel([T,] obj::GitObject)

قم بتقشير obj بشكل متكرر حتى يتم الحصول على كائن من النوع T. إذا لم يتم توفير T، فسيتم تقشير obj حتى يتغير النوع.

  • سيتم تقشير GitTag إلى الكائن الذي يشير إليه.
  • سيتم تقشير GitCommit إلى GitTree.
source
LibGit2.posixpathFunction
LibGit2.posixpath(path)

قم بتوحيد سلسلة المسار path لاستخدام الفواصل المنطقية POSIX.

source
LibGit2.pushFunction
push(rmt::GitRemote, refspecs; force::Bool=false, options::PushOptions=PushOptions())

ادفع إلى مستودع git البعيد المحدد rmt، باستخدام refspecs لتحديد أي فرع (فروع) بعيدة يجب الدفع إليها. المعاملات الرئيسية هي:

  • force: إذا كانت true، سيتم الدفع بالقوة، متجاهلاً النزاعات.
  • options: تحدد الخيارات للدفع، مثل أي رؤوس وكيل يجب استخدامها. انظر PushOptions لمزيد من المعلومات.

!!! ملاحظة يمكنك إضافة معلومات حول refspecs الدفع بطريقتين أخريين: عن طريق تعيين خيار في GitConfig الخاص بالمستودع (مع push.default كمفتاح) أو عن طريق استدعاء add_push!. خلاف ذلك، ستحتاج إلى تحديد refspec دفع بشكل صريح في الاستدعاء إلى push ليكون له أي تأثير، مثل: LibGit2.push(repo, refspecs=["refs/heads/master"]).

source
push(repo::GitRepo; kwargs...)

يدفع التحديثات إلى مصدر repo.

تكون وسائط الكلمات الرئيسية هي:

  • remote::AbstractString="origin": اسم المصدر العلوي الذي سيتم الدفع إليه.
  • remoteurl::AbstractString="": عنوان URL لـ remote.
  • refspecs=AbstractString[]: يحدد خصائص الدفع.
  • force::Bool=false: يحدد ما إذا كان الدفع سيكون دفعًا قسريًا، مما يؤدي إلى الكتابة فوق الفرع البعيد.
  • credentials=nothing: يوفر بيانات الاعتماد و/أو الإعدادات عند المصادقة ضد remote خاص.
  • callbacks=Callbacks(): ردود الفعل والحمولات المقدمة من المستخدم.

معادل لـ git push [<remoteurl>|<repo>] [<refspecs>].

source
LibGit2.push!Method
LibGit2.push!(w::GitRevWalker, cid::GitHash)

ابدأ GitRevWalker walker عند الالتزام cid. يمكن استخدام هذه الدالة لتطبيق دالة على جميع الالتزامات منذ سنة معينة، عن طريق تمرير أول التزام في تلك السنة كـ cid ثم تمرير w الناتج إلى LibGit2.map.

source
LibGit2.push_head!Function
LibGit2.push_head!(w::GitRevWalker)

ادفع التزام HEAD وأسلافه إلى GitRevWalker w. يضمن ذلك أنه سيتم مواجهة HEAD وجميع التزامات أسلافه أثناء السير.

source
LibGit2.push_refspecsFunction
push_refspecs(rmt::GitRemote) -> Vector{String}

احصل على push refspecs لـ rmt المحدد. تحتوي هذه refspecs على معلومات حول أي فرع (فروع) يجب دفعها.

أمثلة

julia> remote = LibGit2.get(LibGit2.GitRemote, repo, "upstream");

julia> LibGit2.add_push!(repo, remote, "refs/heads/master");

julia> close(remote);

julia> remote = LibGit2.get(LibGit2.GitRemote, repo, "upstream");

julia> LibGit2.push_refspecs(remote)
String["refs/heads/master"]
source
LibGit2.rawFunction
raw(id::GitHash) -> Vector{UInt8}

احصل على البايتات الخام لـ GitHash كمتجه بطول 20.

source
LibGit2.read_tree!Function
LibGit2.read_tree!(idx::GitIndex, tree::GitTree)
LibGit2.read_tree!(idx::GitIndex, treehash::AbstractGitHash)

اقرأ الشجرة tree (أو الشجرة المشار إليها بواسطة treehash في المستودع المملوك لـ idx) إلى الفهرس idx. سيتم استبدال محتويات الفهرس الحالية.

source
LibGit2.rebase!Function
LibGit2.rebase!(repo::GitRepo, upstream::AbstractString="", newbase::AbstractString="")

حاول إجراء دمج تلقائي لإعادة التأسيس للفرع الحالي، من upstream إذا تم توفيره، أو خلاف ذلك من فرع التتبع العلوي. newbase هو الفرع الذي سيتم إعادة التأسيس عليه. بشكل افتراضي، يكون هذا هو upstream.

إذا ظهرت أي تعارضات لا يمكن حلها تلقائيًا، ستتوقف عملية إعادة التأسيس، مما يترك المستودع وشجرة العمل في حالتها الأصلية، وستقوم الدالة بإلقاء GitError. هذا يعادل تقريبًا العبارة التالية في سطر الأوامر:

git rebase --merge [<upstream>]
if [ -d ".git/rebase-merge" ]; then
    git rebase --abort
fi
source
LibGit2.ref_listFunction
LibGit2.ref_list(repo::GitRepo) -> Vector{String}

احصل على قائمة بجميع أسماء المراجع في مستودع repo.

source
LibGit2.reftypeFunction
LibGit2.reftype(ref::GitReference) -> Cint

إرجاع Cint يتوافق مع نوع ref:

  • 0 إذا كانت الإشارة غير صالحة
  • 1 إذا كانت الإشارة هي معرف كائن
  • 2 إذا كانت الإشارة رمزية
source
LibGit2.remotesFunction
LibGit2.remotes(repo::GitRepo)

إرجاع متجه بأسماء المراسلين لـ repo.

source
LibGit2.remove!Function
remove!(repo::GitRepo, files::AbstractString...)
remove!(idx::GitIndex, files::AbstractString...)

قم بإزالة جميع الملفات التي تم تحديد مساراتها بواسطة files في الفهرس idx (أو فهرس repo).

source
LibGit2.resetFunction
reset(val::Integer, flag::Integer)

إعادة تعيين بتات val المحددة بواسطة flag، وإعادتها إلى 0.

source
LibGit2.reset!Function
reset!(payload, [config]) -> CredentialPayload

إعادة تعيين حالة payload إلى القيم الأولية حتى يمكن استخدامها مرة أخرى ضمن رد الاتصال الخاص بالاعتماد. إذا تم توفير config، فسيتم أيضًا تحديث التكوين.

source

يحدث بعض الإدخالات، التي تحددها pathspecs، في الفهرس من شجرة الالتزام المستهدفة.

source

يحدد الرأس الحالي إلى معرف الالتزام المحدد ويعيد تعيين الفهرس وشجرة العمل لتطابقه بشكل اختياري.

source

git reset [<committish>] [–] <pathspecs>...

source
reset!(repo::GitRepo, id::GitHash, mode::Cint=Consts.RESET_MIXED)

إعادة تعيين المستودع repo إلى حالته عند id، باستخدام أحد الأوضاع الثلاثة المحددة بواسطة mode:

  1. Consts.RESET_SOFT - نقل HEAD إلى id.
  2. Consts.RESET_MIXED - الافتراضي، نقل HEAD إلى id وإعادة تعيين الفهرس إلى id.
  3. Consts.RESET_HARD - نقل HEAD إلى id، إعادة تعيين الفهرس إلى id، والتخلص من جميع التغييرات في العمل.

أمثلة

# جلب التغييرات
LibGit2.fetch(repo)
isfile(joinpath(repo_path, our_file)) # سيكون خطأ

# دمج سريع للتغييرات
LibGit2.merge!(repo, fastforward=true)

# لأنه لم يكن هناك أي ملف محلي، ولكن هناك
# ملف عن بُعد، نحتاج إلى إعادة تعيين الفرع
head_oid = LibGit2.head_oid(repo)
new_head = LibGit2.reset!(repo, head_oid, LibGit2.Consts.RESET_HARD)

في هذا المثال، المستودع الذي يتم الجلب منه يمتلك ملفًا يسمى our_file في فهرسه، ولهذا السبب يجب علينا إعادة التعيين.

معادل لـ git reset [--soft | --mixed | --hard] <id>.

أمثلة

repo = LibGit2.GitRepo(repo_path)
head_oid = LibGit2.head_oid(repo)
open(joinpath(repo_path, "file1"), "w") do f
    write(f, "111
")
end
LibGit2.add!(repo, "file1")
mode = LibGit2.Consts.RESET_HARD
# سيتخلص من التغييرات في file1
# ويقوم بإلغاء تسجيله
new_head = LibGit2.reset!(repo, head_oid, mode)
source
LibGit2.restoreFunction
restore(s::State, repo::GitRepo)

إرجاع مستودع repo إلى حالة سابقة s، على سبيل المثال HEAD لفرع قبل محاولة الدمج. يمكن توليد s باستخدام دالة snapshot.

source
LibGit2.revcountFunction
LibGit2.revcount(repo::GitRepo, commit1::AbstractString, commit2::AbstractString)

قائمة عدد التعديلات بين commit1 و commit2 (معرفات الالتزام في شكل سلسلة). نظرًا لأن commit1 و commit2 قد يكونان على فروع مختلفة، فإن revcount يقوم بإجراء قائمة "يسار-يمين" للتعديلات (والعد)، ويعيد مجموعة من Ints - عدد الالتزامات اليسارية واليمنية، على التوالي. يشير الالتزام اليساري (أو اليمني) إلى أي جانب من الفرق المتماثل في شجرة يمكن الوصول إلى الالتزام منه.

معادل لـ git rev-list --left-right --count <commit1> <commit2>.

أمثلة

repo = LibGit2.GitRepo(repo_path)
repo_file = open(joinpath(repo_path, test_file), "a")
println(repo_file, "hello world")
flush(repo_file)
LibGit2.add!(repo, test_file)
commit_oid1 = LibGit2.commit(repo, "commit 1")
println(repo_file, "hello world again")
flush(repo_file)
LibGit2.add!(repo, test_file)
commit_oid2 = LibGit2.commit(repo, "commit 2")
LibGit2.revcount(repo, string(commit_oid1), string(commit_oid2))

سيعيد هذا (-1, 0).

source
LibGit2.set_remote_urlFunction
set_remote_url(repo::GitRepo, remote_name, url)
set_remote_url(repo::String, remote_name, url)

قم بتعيين كل من url للتخزين والدفع لـ remote_name لـ GitRepo أو مستودع git الموجود في path. عادةً ما تستخدم مستودعات git "origin" كاسم بعيد.

أمثلة

repo_path = joinpath(tempdir(), "Example")
repo = LibGit2.init(repo_path)
LibGit2.set_remote_url(repo, "upstream", "https://github.com/JuliaLang/Example.jl")
LibGit2.set_remote_url(repo_path, "upstream2", "https://github.com/JuliaLang/Example2.jl")
source
LibGit2.shortnameFunction
LibGit2.shortname(ref::GitReference)

إرجاع نسخة مختصرة من اسم ref تكون "قابلة للقراءة البشرية".

julia> repo = GitRepo(path_to_repo);

julia> branch_ref = LibGit2.head(repo);

julia> LibGit2.name(branch_ref)
"refs/heads/master"

julia> LibGit2.shortname(branch_ref)
"master"
source
LibGit2.snapshotFunction
snapshot(repo::GitRepo) -> State

خذ لقطة من الحالة الحالية للمستودع repo، مع تخزين الـ HEAD الحالي، والفهرس، وأي عمل غير مُلتزم. يمكن استخدام المخرجات State لاحقًا أثناء استدعاء restore لإرجاع المستودع إلى الحالة الملتقطة.

source
LibGit2.split_cfg_entryFunction
LibGit2.split_cfg_entry(ce::LibGit2.ConfigEntry) -> Tuple{String,String,String,String}

قم بتقسيم ConfigEntry إلى الأجزاء التالية: القسم، القسم الفرعي، الاسم، والقيمة.

أمثلة

بالنظر إلى ملف تكوين git الذي يحتوي على:

[credential "https://example.com"]
    username = me

سيبدو ConfigEntry كما يلي:

julia> entry
ConfigEntry("credential.https://example.com.username", "me")

julia> LibGit2.split_cfg_entry(entry)
("credential", "https://example.com", "username", "me")

راجع وثائق بناء جملة git config لمزيد من التفاصيل.

source
LibGit2.statusFunction
LibGit2.status(repo::GitRepo, path::String) -> Union{Cuint, Cvoid}

ابحث عن حالة الملف في path في مستودع git repo. على سبيل المثال، يمكن استخدام ذلك للتحقق مما إذا كان الملف في path قد تم تعديله ويحتاج إلى أن يتم تجهيزه والتزامه.

source
LibGit2.stageFunction
stage(ie::IndexEntry) -> Cint

احصل على رقم المرحلة لـ ie. يمثل رقم المرحلة 0 الحالة الحالية لشجرة العمل، ولكن يمكن استخدام أرقام أخرى في حالة وجود تعارض في الدمج. في مثل هذه الحالة، تصف أرقام المرحلة المختلفة على IndexEntry الجانب (أو الجوانب) التي تنتمي إليها الحالة الحالية للملف من التعارض. المرحلة 0 هي الحالة قبل محاولة الدمج، المرحلة 1 هي التغييرات التي تم إجراؤها محليًا، المراحل 2 وما فوقها مخصصة للتغييرات من فروع أخرى (على سبيل المثال، في حالة دمج "أوكتيبس" متعدد الفروع، قد يتم استخدام المراحل 2 و 3 و 4).

source
LibGit2.tag_createFunction
LibGit2.tag_create(repo::GitRepo, tag::AbstractString, commit; kwargs...)

إنشاء علامة جيت جديدة tag (مثل "v0.5") في المستودع repo، عند الالتزام commit.

وسائط الكلمات الرئيسية هي:

  • msg::AbstractString="": الرسالة للعلامة.
  • force::Bool=false: إذا كانت true، سيتم الكتابة فوق المراجع الموجودة.
  • sig::Signature=Signature(repo): توقيع المُعلِن.
source
LibGit2.tag_deleteFunction
LibGit2.tag_delete(repo::GitRepo, tag::AbstractString)

قم بإزالة علامة git tag من المستودع repo.

source
LibGit2.tag_listFunction
LibGit2.tag_list(repo::GitRepo) -> Vector{String}

احصل على قائمة بجميع العلامات في مستودع git repo.

source
LibGit2.targetFunction
LibGit2.target(tag::GitTag)

هاش Git لكائن الهدف من tag.

source
LibGit2.toggleFunction
toggle(val::Integer, flag::Integer)

قم بتبديل بتات val المحددة بواسطة flag، بحيث إذا كان البت 0 سيصبح 1 بعد التبديل، والعكس صحيح.

source
LibGit2.transactFunction
transact(f::Function, repo::GitRepo)

قم بتطبيق الدالة f على مستودع git repo، مع أخذ snapshot قبل تطبيق f. إذا حدث خطأ داخل f، سيتم إرجاع repo إلى حالته السابقة باستخدام restore. سيتم إعادة رمي الخطأ الذي حدث، لكن حالة repo لن تتعرض للتلف.

source
LibGit2.treewalkFunction
treewalk(f, tree::GitTree, post::Bool=false)

تجول في الإدخالات في tree وأشجارها الفرعية بترتيب ما بعد أو ما قبل. يعني الترتيب المسبق البدء من الجذر ثم التجول في الشجرة الفرعية اليسرى الأكثر (والاستمرار بشكل متكرر من خلال الأشجار الفرعية اليسرى الأكثر لتلك الشجرة الفرعية) والتحرك إلى اليمين عبر الأشجار الفرعية. يعني الترتيب اللاحق البدء من أسفل الشجرة الفرعية اليسرى الأكثر، والتجول لأعلى من خلالها، ثم التجول في الشجرة الفرعية اليمنى التالية (مرة أخرى بدءًا من الأسفل) وأخيرًا زيارة جذر الشجرة في النهاية.

يجب أن يكون للمعامل f التوقيع التالي:

(String, GitTreeEntry) -> Cint

قيمة سالبة تُرجع من f توقف التجول في الشجرة. قيمة إيجابية تعني أنه سيتم تخطي الإدخال إذا كان post هو false.

source
LibGit2.upstreamFunction
upstream(ref::GitReference) -> Union{GitReference, Nothing}

حدد ما إذا كانت الفرع الذي يحتوي على ref لديه فرع متصل محدد.

إرجاع إما GitReference إلى الفرع المتصل إذا كان موجودًا، أو nothing إذا لم يكن للفرع المطلوب نظير متصل.

source
LibGit2.update!Function
update!(repo::GitRepo, files::AbstractString...)
update!(idx::GitIndex, files::AbstractString...)

قم بتحديث جميع الملفات بالمسارات المحددة بواسطة files في الفهرس idx (أو فهرس repo). قم بمطابقة حالة كل ملف في الفهرس مع الحالة الحالية على القرص، وقم بإزالته إذا تم إزالته من القرص، أو تحديث مدخله في قاعدة بيانات الكائنات.

source
LibGit2.urlFunction
url(rmt::GitRemote)

احصل على عنوان URL لجلب مستودع جيت البعيد.

أمثلة

julia> repo_url = "https://github.com/JuliaLang/Example.jl";

julia> repo = LibGit2.init(mktempdir());

julia> remote = LibGit2.GitRemote(repo, "origin", repo_url);

julia> LibGit2.url(remote)
"https://github.com/JuliaLang/Example.jl"
source
LibGit2.withFunction
with(f::Function, obj)

دالة مساعدة لإدارة الموارد. تطبق f على obj، مع التأكد من استدعاء close على obj بعد أن تعود f بنجاح أو ترمي خطأ. تضمن أن الموارد المخصصة لـ git يتم إنهاؤها بمجرد عدم الحاجة إليها.

source
LibGit2.with_warnFunction
with_warn(f::Function, ::Type{T}, args...)

دالة مساعدة لإدارة الموارد. تطبق f على args، أولاً بإنشاء مثيل من النوع T من args. تتأكد من استدعاء close على الكائن الناتج بعد أن تعود f بنجاح أو ترمي خطأ. تضمن أن الموارد المخصصة لـ git يتم إنهاؤها بمجرد عدم الحاجة إليها. إذا تم رمي خطأ بواسطة f، يتم عرض تحذير يحتوي على الخطأ.

source
LibGit2.workdirFunction
LibGit2.workdir(repo::GitRepo)

ارجع موقع دليل العمل لـ repo. سيؤدي هذا إلى حدوث خطأ في المستودعات العارية.

!!! ملاحظة سيكون هذا عادةً هو الدليل الأب لـ gitdir(repo)، ولكن يمكن أن يكون مختلفًا في بعض الحالات: على سبيل المثال، إذا تم تعيين إما متغير تكوين core.worktree أو متغير البيئة GIT_WORK_TREE.

انظر أيضًا gitdir، path.

source
LibGit2.GitObjectMethod
(::Type{T})(te::GitTreeEntry) where T<:GitObject

احصل على كائن git الذي يشير إليه te وأرجعه كنوعه الفعلي (النوع entrytype سيظهر)، على سبيل المثال GitBlob أو GitTag.

أمثلة

tree = LibGit2.GitTree(repo, "HEAD^{tree}")
tree_entry = tree[1]
blob = LibGit2.GitBlob(tree_entry)
source
LibGit2.isfilledFunction
isfilled(cred::AbstractCredential) -> Bool

يتحقق من أن الاعتماد جاهز للاستخدام في المصادقة.

source
LibGit2.CredentialPayloadType
LibGit2.CredentialPayload

يحتفظ بالحالة بين عدة استدعاءات لدالة الاعتماد لنفس عنوان URL. من المتوقع أن يتم reset! لنسخة CredentialPayload كلما تم استخدامها مع عنوان URL مختلف.

source
LibGit2.approveFunction
approve(payload::CredentialPayload; shred::Bool=true) -> Nothing

قم بتخزين بيانات اعتماد payload لإعادة استخدامها في مصادقة مستقبلية. يجب أن يتم استدعاؤه فقط عندما تكون المصادقة ناجحة.

تتحكم الكلمة الرئيسية shred فيما إذا كان يجب تدمير المعلومات الحساسة في حقل بيانات اعتماد الحمولة. يجب تعيينها على false فقط أثناء الاختبار.

source
LibGit2.rejectFunction
reject(payload::CredentialPayload; shred::Bool=true) -> Nothing

تجاهل بيانات الاعتماد payload من إعادة استخدامها في المصادقة المستقبلية. يجب أن يتم استدعاؤه فقط عندما تكون المصادقة غير ناجحة.

تتحكم الكلمة الرئيسية shred فيما إذا كان يجب تدمير المعلومات الحساسة في حقل بيانات الاعتماد. يجب تعيينها على false فقط أثناء الاختبار.

source
LibGit2.Consts.GIT_CONFIGType

مستوى الأولوية لملف التكوين.

تتوافق هذه المستويات من الأولوية مع منطق التصعيد الطبيعي (من الأعلى إلى الأدنى) عند البحث عن إدخالات التكوين في git.

  • CONFIG_LEVEL_DEFAULT - افتح ملفات التكوين العالمية و XDG وملفات النظام إذا كانت متاحة.
  • CONFIG_LEVEL_PROGRAMDATA - على مستوى النظام في Windows، من أجل التوافق مع git المحمول
  • CONFIG_LEVEL_SYSTEM - ملف التكوين على مستوى النظام؛ /etc/gitconfig على أنظمة Linux
  • CONFIG_LEVEL_XDG - ملف التكوين المتوافق مع XDG؛ عادةً ~/.config/git/config
  • CONFIG_LEVEL_GLOBAL - ملف التكوين الخاص بالمستخدم (يسمى أيضًا ملف التكوين العالمي)؛ عادةً ~/.gitconfig
  • CONFIG_LEVEL_LOCAL - ملف التكوين الخاص بالمستودع؛ $WORK_DIR/.git/config على المستودعات غير الفارغة
  • CONFIG_LEVEL_APP - ملف التكوين الخاص بالتطبيق؛ معرف بحرية من قبل التطبيقات
  • CONFIG_HIGHEST_LEVEL - يمثل أعلى مستوى متاح لملف التكوين (أي أكثر ملف تكوين محدد متاح يتم تحميله فعليًا)
source