SVN - عندما تضع علامة على نسخة عمل هل لا تزال نسخة رخيصة؟

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

  •  25-09-2019
  •  | 
  •  

سؤال

باستخدام التخريب ، في نسخة العمل الخاصة بي ، أقوم بتعديل بسيط (تحديث رقم الإصدار). أود بعد ذلك وضع علامة على نسخة العمل الخاصة بي. هل ستظل هذه العلامة نسخة رخيصة مع التعديل ، أم أن SVN ستكرر الملفات؟ أود أن أكره أن أرى مستودعتي تنمو بشكل كبير في الحجم لأنني أحاول حفظ رقم الإصدار.

السبب في أنني أسأل عن إنشاء علامة تحتوي على تعديل بدلاً من الالتزام ، ثم يتضمن وضع العلامات خادم البناء الخاص بي. ينشئ خادم Build CCNETLABEL الذي أستخدمه لتحديث أرقام الإصدار من مشاريعي (AssemblyInfo.cs). عندما يكون البناء ناجحًا ، فإنه يخلق علامة. عندما أستخدم Forcebuild ، تعتمد العلامة على نسخة العمل التي تحتوي على رقم الإصدار المعدل. أريد أن تحتوي العلامة على رقم الإصدار المناسب.

ملاحظة: إنه أمر قابل للنقاش إذا قمت بإنشاء فرع أو علامة ، ولكن SVN لا يميز بين الاثنين.

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

المحلول

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

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

لكنها لا تزال رخيصة معقولة: إنها لا تكرر أي ملفات موجودة بالفعل في المستودع.

نصائح أخرى

من وصف التخريب

  • المتفرعة والعلامة هي عمليات رخيصة (وقت ثابت). لا يوجد سبب لأن هذه العمليات باهظة الثمن ، لذلك فهي ليست كذلك. يتم تنفيذ الفروع والعلامات كلاهما من حيث عملية "نسخة" أساسية. نسخة تأخذ مساحة صغيرة وثابتة من المساحة. أي نسخة هي علامة. وإذا بدأت في الالتزام بنسخة ، فهو فرع أيضًا. (هذا يبتعد عن "وضع العلامات الفرعية" لـ CVS ، عن طريق إزالة التمييز الذي جعل علامات نقطة الفرع ضرورية في المقام الأول.)

ملحوظة! لقد لاحظت ذلك للتو تخريب تم نقله إلى منظمة مشروع Apache

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

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

لا يمكن ذكر أي شخص بعيد عن أي شخص يزور أن الإجابة التي تنص على أنه يمكنك فقط "لا يمكنك سوى وضع علامة على البيانات التي تم ارتكابها بالفعل في المستودع ..." العمل الملتزم ليس دقيقًا تمامًا (على الأقل ليس الآن).

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

أما بالنسبة للرخصة ، نعم ، يجب أن تكون رخيصة حيث أن التخريب سوف يتفوق عليك ، ثم يتراكب نسخة العمل الخاصة بك إلى الريبو ، وتوفير أكبر عدد ممكن من المساحة

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