SVN استيراد الفوضى ، لا شيء على الجذع
-
29-09-2019 - |
سؤال
نظرت إلى كيفية إنشاء دليل جذع في SVN Repo الحالي بدون جذع وتحريك الكل, ومع ذلك ، قد يكون الأمر قابلاً للتطبيق ، لكن لدي "صندوق جذع" ، لكن الطريقة التي قد تستورد بها المطور ، أحد كبار في ذلك ، أن يوفر المشروع إلى SVN Repos مراجعة يستحق الفرق.
يبدو ، بالنظر إلى السجل ، أن يقوم المطور بإنشاء شجرة SVN محليًا ، trunk/branches/tags
الدليل ، أنشأ جميع الملفات في branches
الدليل ، ثم على الاستيراد الأولي إلى svn
, ، ملتزم الجذع والعلامات كجزء من الفروع الالتزام.
هذا يعني أنه لا يوجد تاريخ لنسخة إلى فرع. السجل ، في القريب ، هو:
% cd work
% mkdir -p project/trunk project/branches project/tags
% cd project/branches
... begin a bunch of work on a java service v1.0
... happy lets import to svn
% cd ..
% pwd project
% svn import -m"Initial import"
A branches
A branches/file-n
A branches/file-n ...
A tags
A trunk
Sending...
Committed rn
% svn mv $repos/project $repos/project_name
...
Committed rn
لذا svn merge
لا يعمل حقا هنا. trunk
هو جزء من الالتزام الأولي ، التاريخ لا يسمح حقًا بدمج نظيفة.
هل يمكنني استخدام اقتراح النسخ والارتباط في الاعلى؟ أم أن هناك طريقة أخرى ضرورية في هذه الحالة؟
المحلول
لقد حللت هذا بمزيج من بعض الأشياء هنا في SO.
في النهاية ، لم تكن الخطوة تعمل في عملية بناء مؤسستنا. هذا من شأنه أن يحافظ على تاريخ الفرع على الجذع ، لكنه ترك الفرع فارغًا. بنيتنا لم تكن تحب ذلك.
بدلاً من ذلك قمت بنسخ الملفات إلى دليل الجذع ، بلا .svn
أدلة بالطبع ، عبر svn export
وارتكبهم.
الآن ، قد يقول البعض ، لقد فقدت التاريخ. لست متأكدًا من ذلك. لا يزال تاريخ الفرع موجودًا ، وتم إنشاء فرع جديد من Trunk. لا يزال الفرع السابق نشطًا ويمكن تقاعده هو أن العملية تسمح ، و EOL الموسومة ، إلخ.
ردود الفعل مرحبًا.