هل من الممكن إجراء عمليات السحب تلقائيًا من أي VCS؟

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

سؤال

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

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

المحلول

بالتأكيد، ولكن المنتج المحدد قد يعتمد على VCS الذي تستخدمه.

ما قد ترغب في القيام به هو أن يكون لديك بضعة فروع مختلفة، ثم ترحيلها مع تقدمك.على سبيل المثال، التطوير -> التطوير المستقر -> بيتا -> الإنتاج.يمكنك بعد ذلك ببساطة التحديث التلقائي إلى أحدث إصدار من Stable-Dev وBeta للمختبرين لديك، وستكون قادرًا دائمًا على نشر إصدار إنتاجي جديد بمجرد سقوط القبعة.

نصائح أخرى

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

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

أي شيء يمكنك القيام به باستخدام cvs يمكن القيام به باستخدام سطر الأوامر، وأنا متأكد تمامًا من أن svn هو نفسه.ما عليك سوى تحديد الوظيفة التي تريدها ولصقها في برنامج نصي shell أو ملف أوامر.

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

hg update

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

SVN هو نفس المفهوم، ما عليك سوى التحقق من الفرع الذي تريده في البداية

svn co http://host/repository/branchname/

ثم لديك تحديث الخادم الخاص بك مع وظيفة cron، علاء

svn up

من الناحية النظرية، أي VCS يدعم التفرع (كل الأشياء الجيدة تفعل:git، وmercurial، وSVN، وما إلى ذلك...) يجب أن يكون قادرًا على القيام بشيء مشابه لهذا.

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

كمتابعة،

أنا من رأيي أن التطبيق يجب أن يقوم بوظيفة واحدة ويقوم بها بشكل جيد.في كثير من الأحيان، إذا بدأت في دمج الأدوات في منتج واحد، فلن يتألق أي منها، وسيكون معظمها "جيدًا نوعًا ما".

إذا كنت أفعل شيئًا كهذا، فسأحصل على شيء مثل SVN وANT ومكتبة Subversion Ant (http://ant.apache.org/antlibs/svn/index.html) - قد تختلف الألفية الخاصة بك بالرغم من ذلك.

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