هل هناك أي شيء خاطئ مع استخدام بوابة مثل هذا؟

StackOverflow https://stackoverflow.com/questions/1619562

  •  06-07-2019
  •  | 
  •  

سؤال

وهنا هو وضعي. وأظل مجموعة من الملفات على كل من جهاز الكمبيوتر المحمول، وخادم. لدي بالفعل إعداد المزامنة بين الموقعين باستخدام رسينك. مؤخرا قررت أن جزء معين من هذه الملفات يجب أن تكون تحت السيطرة المصدر. أنا أستخدم git لذلك.

وهكذا لدي shared/ التي يمكنني مزامنة باستخدام رسينك. ثم لقد shared/stuff/ التي تقع تحت سيطرة بوابة. سأكون باستخدام بوابة من كلا الموقعين على المستودع الذي هو محلي. أنا أعمل فقط مع نسخة واحدة في وقت واحد، وأنا دائما مزامنة الملفات ذهابا وإيابا.

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

وهكذا سؤالي الحقيقي: هل rsync فعل أي شيء من شأنها أن تقضي git؟ أو العكس؟

وتحرير: بالنسبة لأولئك الذين لديهم فضول، والسبب الذي أستخدمه رسينك لمزامنة بدلا من بوابة، لأن لدي بالفعل نظام رائع لحفظ المشتركة / مجلد مزامن، وترغب في الحفاظ على بوابة مستودع في ذلك.

هل كانت مفيدة؟

المحلول

وهناك شيء خاطئ.

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


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

إذا كان لديك ملف حزمة تسمى .git/objects/pack-fe017c0e9ea12841cd29458df7bd4421c2b12458.pack، مجرد خلق واحد اسمه حافظ على بجانبه:

touch .git/objects/pack-fe017c0e9ea12841cd29458df7bd4421c2b12458.keep

والآن، سوف git gc لا كتابة هذا الملف حزمة، ولكن الامر سيستغرق كل حزم وغيرها من الأشياء الصغيرة وجمعها معا. الفارق الى git repack هو أنك لن بناء مجموعة من الكثير من الملفات حزمة صغيرة.

نصائح أخرى

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top