على الرغم من أن مستودعات التخريب (SVN) تشبه مستودعات Git ، إلا أن الفرق بينها دقيق للغاية. كلاهما هما النسختان الأكثر شيوعًا من أنظمة التحكم المستخدمة لتتبع التغييرات في التعليمات البرمجية المصدر بمرور الوقت ، ولكن لديهم حصة عادلة من الاختلافات من حيث الهندسة المعمارية. يمكنهم القيام بأشياء مماثلة مثل وضع العلامات والتفرع ، لكنهم يختلفون بشكل كبير في كيفية تخزين الأشياء. Git هو نظام إدارة مجاني ومفتوح المصدر يتم توزيعه بموجب ترخيص GNU ، و SVN هو نظام مركزي للتحكم في الإصدارات يتم توزيعه بموجب ترخيص مفتوح المصدر. توضح هذه المقالة الاختلافات الرئيسية بين الاثنين.

الفرق بين Git و Subversion

ما هو Git؟

باستخدام DVCS خاص يسمى BitKeeper ، أنشأ Linus Torvalds في الأصل طريقة ترميز جديدة لمجتمع مطوري Git لإنشاء نواة Linux. تعد Git واحدة من أكثر الأدوات شيوعًا المستخدمة في آلاف المشاريع تقريبًا والتي يقبلها ملايين المطورين في جميع أنحاء العالم. هذا هو نظام التحكم في الإصدار الموزع ، وهو استنساخ واضح لمستودع مركزي يسمح للمستخدمين بالاحتفاظ بالإصدارات الحالية والسابقة من التاريخ ، مع الحفاظ على قاعدة بيانات مخصصة تسمى التخزين المحلي ، مصممة للحفاظ على علامات التبويب على تغييرات شفرة المصدر بمرور الوقت. . الملفات على أجهزة الكمبيوتر المحلية. الميزة الرئيسية لـ Git هي أنها لا تعتمد على الوصول إلى الشبكة لوظائفها ، مما يوفر التكامل الهيكلي.

الفرق بين Git و Subversion

ما هو التخريب؟

التخريب أو SVN هو نظام إدارة مجاني ومفتوح المصدر يستخدم لإدارة الملفات وتخزينها ، ويتغير بمرور الوقت إلى خادم مركزي. يتم توزيعه كمصدر مفتوح بموجب ترخيص أباتشي. تأسست في عام 2000 من قبل CollabNet ، كانت SVN موجودة منذ أكثر من عقد من الزمان ، وتستمر في النمو كأداة VCS ناجحة في كل من مجتمع المصادر المفتوحة والنظام البيئي للشركة. على عكس Git ، يقوم SVN بتخزين إصدارات الملفات على خادم مركزي. ينشئ فروعًا في المستودع المركزي ، الموجود كدليل. إذا أراد المستخدم إجراء تغيير على الشفرة ، فسيقوم بذلك من أجهزته ، وعندما يفعل ذلك ، يعيد الرمز إلى المستودع المركزي.

الفرق بين Git و Subversion

أساسيات Git و Subversion

على الرغم من أن برنامجي التحكم في إصدار المصدر المفتوح الأكثر شيوعًا والمستخدمين للحفاظ على علامات التبويب على شفرة المصدر يتغير بمرور الوقت ، إلا أنهما مختلفان تمامًا. Git هو نظام تحكم في الإصدار الموزع يستخدم نظامًا موزعًا لفهرسة جميع إصدارات ملف المشروع. في المقابل ، التخريب (svn) هو إصدار مركزي ونظام تحكم في المراجعة يتم توزيعه بموجب تراخيص مفتوحة المصدر.

مستودعات Git و Subversion

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

توزيع البوابة والتخريب

عندما يتحقق المستخدمون من المستودع على Git ، يحصلون على نسخة كاملة من ما يتم تخزينه على أجهزتهم المحلية. إنهم بحاجة إلى "دفع" التغييرات في التعليمات البرمجية لمشاركتها مع مستخدمين آخرين ، أو "سحبها" للمزامنة مع المخزن البعيد. وهذا يجعل من السهل على العديد من المستخدمين العمل معًا دون إزعاج المستودع المركزي. عند الحذف ، يشارك كل مستخدم نفس المستودع المركزي عبر التفرع.

الاعتماد على شبكات Git و Subversion

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

السلامة الهيكلية للجيت والتخريب

كل شيء في Git هو تشفير قبل تخزين خوارزمية التجزئة SHA-1 ويضمن تناسق محتوى الشفرة. يجعل Git من المستحيل تقريبًا تغيير محتويات الرمز دون معرفته. على النقيض من ذلك ، لا يحتوي التخريب على محتوى غير مهم ، مما لا يضمن سلامة المحتوى في حالة فشل الشبكة أو القرص. من الواضح أن Git هو أفضل بديل عندما يتعلق الأمر بتكامل المحتوى.

Git and Subversion: مخطط مقارنة

تدمير GER VERSUS

هنا لمحة سريعة عن تدمير آيات Git

يعد Git بلا شك أحد أشهر أنظمة التحكم في الإصدارات وأكثرها استخدامًا والمصممة للتعامل مع كل شيء من المشاريع الصغيرة إلى الكبيرة. يُستخدم نظام التحكم في الإصدار الموزع مفتوح المصدر هذا لتخزين التغييرات في شفرة المصدر وحفظها عبر إيداع محلي بمرور الوقت ، وهو ليس سوى نسخة من المستودع المركزي. SVN هو نظام للتحكم في الإصدار يستخدم بشكل أساسي لنفس الغرض ، بخلاف كيفية تخزين العناصر. على عكس Git ، يستخدم SVN خادمًا مركزيًا لتخزين الإصدارات الحالية والسابقة من ملفات المصدر والمستندات وصفحات الويب وما إلى ذلك. ميزة Git عبر SVN هي أنه يمكن لمستخدمي Git إدارة الإصدار دون القلق بشأن الشبكة. دخول صعب جدا في SVN.

المراجع

  • شاكون ، سكوت وبن ستراوب. Pro Git (الإصدار الثاني). مدينة نيويورك: Apress ، 2014. طباعة
  • Pipinellis ، Achilleas. أساسيات جيثب. برمنغهام: Packt Publishing ، 2015. طباعة
  • بيلاتو ، مايكل وآخرون. التحكم في الإصدار مع التخريب. سيباستوبول: MeasurementReilly Media ، 2008
  • حقوق الصورة: https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Git-logo.svg/512px-Git-logo.svg.png
  • حقوق الصورة: https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/Subversion_logo.svg/640px-Subversion_logo.svg.png