คำถามติดแท็ก version-control

ใช้สำหรับจัดการการเปลี่ยนแปลงเอกสารและข้อมูลอื่น ๆ ที่จัดเก็บเป็นไฟล์คอมพิวเตอร์

4
เวิร์กโฟลว์ที่แนะนำสำหรับการโอนย้ายการกำหนดค่า (CMI) จาก dev -> stage -> การผลิตคืออะไร
เรามี drupalcamp เมื่อสองสามเดือนก่อนและมีคนถามเกี่ยวกับการจัดการการปรับใช้ด้วยระบบ config (CMI) ใหม่ เวิร์กโฟลว์ในอุดมคติที่เป็นไปได้ประการหนึ่งจะเกี่ยวข้องกับการรักษาการกำหนดค่าในการควบคุมเวอร์ชันและยังคงสามารถโยกย้ายการกำหนดค่าระหว่างสมาชิกในทีม สิ่งที่ดีที่สุดที่เราอยู่ในห้องนั้นสามารถคิดออกได้ (บางส่วนขึ้นอยู่กับการนำเสนอที่ DrupalCon Portland) คือ: บอกการควบคุมเวอร์ชันเพื่อละเว้นไดเรกทอรี config ที่ใช้งานอยู่ คัดลอกการกำหนดค่าทั้งหมดไปยังไดเรกทอรีจัดเตรียมและกระทำการควบคุมเวอร์ชัน และใช้ settings.php เพื่อย้อนกลับ active / staging directory ระหว่าง 2 environment อย่างไรก็ตามในขณะที่การหาเวิร์กโฟลว์การปรับใช้จากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์ถัดไปนั้นมีความซับซ้อน แต่สามารถทำได้เวิร์กโฟลว์ที่แนะนำจากสภาพแวดล้อมในท้องถิ่นหลายแห่ง (เช่นนักพัฒนาหลายคน) ไปสู่ ​​dev (หรือระหว่างกัน) - ปัญหาที่เป็นไปได้ จะแบ่งปันสภาพแวดล้อมแบบเดียวกันหรือคล้ายกันดังนั้นการเปลี่ยนแปลงในเครื่องของเพื่อนร่วมทีมคนหนึ่งจะเกิดขึ้นได้อย่างไร?

1
ฉันต้องนำไซต์ไปควบคุมเวอร์ชันและตั้งค่าสภาพแวดล้อมการรวมอย่างต่อเนื่อง
ฉันเป็นผู้ประกอบการที่มีโครงการ Drupal 6x ที่เริ่มมีขนาดเล็กพอที่จะไม่ต้องการการควบคุมเวอร์ชัน (ต่อผู้พัฒนา) แต่ตอนนี้ฉันมั่นใจแล้วว่าไม่มีทางที่จะทำได้ มีเอกสารมากมายเกี่ยวกับ JIRA พร้อมเรื่องราวผู้ใช้ที่เขียนอย่างดีครอบคลุมทุกสิ่ง ฉันอ่านเกี่ยวกับวิธีการนี้สามารถทำได้และมาพร้อมกับแผนต่อไปนี้ - แยกรหัสไซต์ออกจากฐานข้อมูลโดยใช้โมดูล บริบท คุณสมบัติ แขนที่แข็งแรง Profiler วางรหัสในที่เก็บ SVN และสร้างไซต์การแสดงละคร สร้างมิรเรอร์ของเซิร์ฟเวอร์ staging บนเซิร์ฟเวอร์การผลิต EC2 สร้างการทดสอบซีลีเนียมและรันบนคลาวด์โดยใช้Saucelabs สร้างเวิร์กโฟลว์การสร้างใน JIRA Studio โดยใช้ Elastic Bamboo เพื่อเรียกใช้การอัปเดตอัตโนมัติ อัพเดตและติดตั้งโปรไฟล์โดยใช้Drush Make เรียกใช้การอัปเดตบนเซิร์ฟเวอร์ที่ใช้งานจริง (ฉันไม่แน่ใจ) ในการเริ่มต้นฉันได้ทำรายการ "คุณลักษณะ" ประมาณ 50 รายการโดยแต่ละรายการมีองค์ประกอบ (มุมมองประเภทเนื้อหาโมดูล ฯลฯ ) ไม่ต้องสงสัยเลยว่าสิ่งนี้จะท้าทายเนื่องจากไซต์ประกอบด้วยโมดูลและบริการเว็บที่กำหนดเองเกี่ยวกับโหลไม่ต้องพูดถึง "แอปพลิเคชัน" ประเภทเนื้อหาที่มีรหัสที่กำหนดเองอีกโหลที่มีรหัสที่กำหนดเอง (ซึ่งส่วนใหญ่ฉันต้องการ . สิ่งที่ดีคือเว็บไซต์ยังไม่ได้ทำการผลิตดังนั้นความเสี่ยงยังมี จำกัด …

3
การอัปเดตเป็นโมดูลรุ่นที่ใหม่กว่าโดยใช้ Drush (ละเว้นจุด / รุ่นที่แนะนำโดยไม่ต้องควบคุมเวอร์ชัน trashing)
[NB คำถามนี้ปิดอยู่ด้านหลัง แต่แยก / ไปถึงคำถามก่อนหน้าของฉันที่นี่ ] ฉันใช้ Drush มาระยะหนึ่งแล้ว แต่ทุกครั้งที่ฉันต้องนิ่งงัน ในตอนนี้ฉันไม่แน่ใจจริงๆว่าจะทำอย่างไรกับเรื่องนี้ สถานการณ์จำลอง: ปัจจุบันไซต์ใช้การปล่อย dev ในอดีต ในขณะเดียวกันยังไม่มีการสร้างการปล่อยจุด แต่มีการเปิดตัว dev รุ่นใหม่ ดังนั้นเราจึงมีสิ่งที่ชอบ: Reroute Email 6.x-1.x-dev (2010-Sep-27) Recommended version: 6.x-1.0 (2008-Jul-24) Development version: 6.x-1.x-dev (2011-Feb-25) การdrush dl <module>-6.x-1.x-devเขียนทับไดเรกทอรีที่มีอยู่ด้วย 1.x dev ครั้งล่าสุด ไม่เป็นไร แต่จะลบโฟลเดอร์. svn ถ้าฉันทำdrush upc <module>มันจะดาวน์โหลดการปล่อยจุด (ดูการแก้ไขด้านล่าง) ซึ่งฉันไม่ต้องการ แต่ถ้าฉันทำdrush upc <module>-6.x-1.x-devมันแค่รีเฟรชข้อมูลการอัพเดทแล้วบอกฉันว่า "เวอร์ชั่นที่ระบุแล้วติดตั้งแล้ว" …

2
วิธีการใช้โมดูลฟีเจอร์ในสภาพแวดล้อม 3 dev
ทำงานในโครงการใช้คุณสมบัติอย่างหนักบางครั้งมี 3 devs สำหรับแอปพลิเคชันนี้ เราได้ลองสองสามวิธี แต่เมื่อเรารวมสาขา git ของเราดูเหมือนว่าเรามักจะ 'เขียนทับ' การเปลี่ยนแปลงคุณสมบัติของกันและกัน ความขัดแย้งเกิดขึ้นมากมายทำลายโมดูลคุณลักษณะซึ่งทำให้ใช้งานได้ลำบาก คุณสมบัติเป็นตัวจับเวลาที่ยอดเยี่ยมสำหรับการกำหนดค่าสำหรับโครงการและฉันค่อนข้างแน่ใจว่ามีวิธีแก้ไขปัญหานี้ มีเวิร์กโฟลว์หรือขั้นตอนที่ลดความเสี่ยงของความขัดแย้งและเขียนทับหรือไม่ เบาะแสเกี่ยวกับคุณสมบัติยินดีต้อนรับ

5
จัดการโมดูลที่กำหนดเองในการติดตั้งหลาย ๆ
เรามีโมดูลที่กำหนดเองซึ่งใช้สำหรับเว็บไซต์หลายแห่ง โมดูลเหล่านั้นไม่สามารถเผยแพร่เป็นโมดูลที่สนับสนุนได้เช่นเนื่องจากเป็นไคลเอนต์เฉพาะทำให้สมมติฐานที่ใช้ไม่ได้กับโมดูลที่สนับสนุนและอื่น ๆ ฉันรู้เกี่ยวกับความเป็นไปได้ที่จะจัดการกับสิ่งนี้: คัดลอกและวางไว้รอบ ๆ ทำให้เป็นการยากที่จะทำให้โมดูลทันสมัยในการติดตั้งทั้งหมด มีการติดตั้งแบบหลายไซต์ครั้งเดียว แต่ไม่สามารถทำได้ ใช้ submodules git แต่พวกเขาก็น่ารังเกียจมันง่ายที่จะลืมพวกเขาและไม่สนับสนุนเสมอ (เช่น Pantheon) Drush สร้างสคริปต์เพื่อตรวจสอบจากที่เก็บคอมไพล์ทั่วไป สำหรับสิ่งนี้คุณ AFAIK จำเป็นต้องใช้ drush make สำหรับทั้งไซต์และเราไม่ได้ใช้งานเลย http://drupal.org/project/fserver ฉันยังไม่ได้ลองมันเลยมีใครรู้บ้างไหมว่ามันเสถียรเพียงพอหรือไม่ คำอธิบายโครงการไม่ได้มีแนวโน้มมากและไม่มีรุ่นที่ 7.x มีอะไรอีกหรือดีกว่า คุณชอบอะไรและทำไม

2
ฉันจะใช้ไฟล์แก้ไขได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดทคำถามดังนั้นจึงเป็นเรื่องในหัวข้อคำตอบ Drupal ปิดให้บริการใน5 ปีที่ผ่านมา ฉันดาวน์โหลดไฟล์แพตช์จากโมดูลตัวส่งเมลและต้องใช้การเปลี่ยนแปลงเพื่อแก้ไขปัญหาของบัญชี pop3 ที่ไม่ได้ลบอีเมลหลังจากดาวน์โหลด (นำเข้า) ฉันจะติดตั้งได้อย่างไร

1
ฉันจะอัพเดต Drupal 7 Core ด้วยแพตช์รักษาความปลอดภัยเท่านั้นได้อย่างไร
ฉันมีการติดตั้ง Drupal 7 เก่าและต้องการอัปเดต Drupal 7 เป็นรุ่นล่าสุด แต่ฉันรู้ว่าโมดูลที่กำหนดเองของฉันบางส่วนจะหยุดการอัปเดตล่าสุด สิ่งที่ฉันต้องการติดตั้งคือแพตช์รักษาความปลอดภัยจนถึง Drupal 7 ล่าสุดสิ่งนี้สามารถทำได้หรือเป็นไปได้แม้ไม่มีความพยายามมาก? ฉันจะดูสิ่งที่ถูกแพทช์ระหว่างการอัพเดท Drupal 7 core ได้ที่ไหนและอย่างไร

3
ฉันควรเพิกเฉยต่อรายชื่อผู้จำหน่ายใน git สำหรับ Drupal 8 หรือไม่?
ในที่สุดฉันก็พยายามขึ้นเครื่องด้วยการใช้ Drupal 8 และต้องการทราบว่าฉันควรเพิกเฉยต่อรายชื่อผู้จำหน่ายในคอมไพล์ด้วย. gitignore หรือไม่ ฉันจะไม่คิด แต่ฉันได้เห็นตัวอย่าง. gitignore ไฟล์ที่ทำ ขอบคุณ!

3
แนวปฏิบัติที่ดีที่สุดในการอัพเกรดแกน Drupal คืออะไรโดยไม่ทำลาย Git repo และเว็บไซต์การผลิต
ฉันมีที่เก็บ Git ซึ่งรหัสทั้งหมดของฉันอยู่ในสาขาหลักและก่อนหน้านี้ฉันไม่สนใจไฟล์ Drupal ทั้งหมดดังนั้นฉันจึงแยกการแยกระหว่างรหัสที่ฉันเขียนไว้อย่างเข้มงวด (หรือปรับเปลี่ยนหรืออาจแก้ไข) และรหัส ที่สามารถสร้างขึ้นด้วย Drush หรืออะไรก็ตาม นี่เป็นกลยุทธ์ที่ดีจนกระทั่งฉันต้องอัพเกรด Drupal ฉันรู้ว่าฉันต้องการที่จะย้อนกลับไปถ้าสิ่งต่าง ๆ แย่ลงและมีเครื่องมืออะไรที่ดีกว่าการใช้ Git ในการทำเช่นนั้น ฉันคิดกับตัวเองว่านี่จะเป็นสถานการณ์ที่สมบูรณ์แบบสำหรับฟีเจอร์สาขาดังนั้นฉันจึงสร้างdrupal-7.14สาขาขึ้นมาเอง.gitignoreเพื่อที่จะเพิกเฉยต่อโค้ดและไฟล์การตั้งค่าทั้งหมดและให้ความสนใจกับไฟล์ที่เป็นส่วนหนึ่งของการติดตั้ง Drupal เท่านั้น อย่าแตะต้อง ฉันทำการอัปเกรดด้วยมือ (ดาวน์โหลด, คลายซิป, ไม่คัดลอก, คัดลอก), เรียงลำดับตามกรณีแนวเขตเช่น robots.txt และ. htaccess และเขียนทับ. gitignore ของ Drupal ด้วยตัวเอง ฉันแก้ไขการตั้งค่าบางอย่างที่ทำงานกับ 7.14 แต่ไม่ใช่กับ 7.15 เพื่อกู้คืนจากข้อผิดพลาด 500 และทุกอย่างก็ดูสมบูรณ์แบบ ฉันเปลี่ยนชื่อสาขาเป็นdrupal-7.15และกำลังจะไปอย่างมีความสุขในแบบของฉัน จนกว่าฉันจะรู้ว่าสิ่งที่ฉันทำโดยไม่ได้ตั้งใจ: ไฟล์ที่ก่อนหน้านี้ไม่ได้ติดตามโดยสาขาหลักของฉัน แต่ทิ้งไว้ในไดเรกทอรีการทำงานตอนนี้ถูกลบออกจากไดเรกทอรีการทำงานตอนที่ฉันเช็คเอาท์หลักเพราะพวกเขาไม่ใช่ไฟล์ที่ไม่ได้ติดตามอีกต่อไป! D'โอ้! ถ้าฉันรวมdrupal-7.15สาขากับอาจารย์ฉันจะเสียการแยกรหัส อาจมีวิธีในการแปลงสาขาเป็น submodule …

2
วิธีการสนับสนุนโมดูลที่แปลงแล้ว?
ฉันเพิ่งแปลงโมดูลที่สนับสนุนของ Drupal 6 เป็น Drupal 7 สำหรับโครงการลูกค้าของฉัน ฉันต้องการมีส่วนร่วมโมดูลนี้แปลงให้กับชุมชน จะอัพโหลดสิ่งนี้ในหน้าโครงการที่มีอยู่ได้อย่างไร ฉันต้องสร้างแพตช์หรือมันจะเป็นโครงการ sandbox หรือไม่?

2
ฉันควรสร้างความสมดุลระหว่างฟีเจอร์และโปรไฟล์การติดตั้งในเวิร์กโฟลว์การพัฒนาโค้ด
โปรไฟล์การติดตั้ง Drupal (ใน Drupal 7) ค่อนข้างทรงพลังและสามารถทำอะไรก็ได้ที่โมดูลสามารถทำได้ ฉันใช้โปรไฟล์การติดตั้งพร้อมกับคุณสมบัติเพื่อพัฒนาเว็บไซต์ของฉันโดยเก็บทุกอย่างไว้ในโค้ดดังนั้นฉันจึงไม่ต้องอัปเกรดฐานข้อมูลของฉัน ด้วยประสิทธิภาพของโปรไฟล์การติดตั้งหลายสิ่งที่คุณสามารถทำได้ในโมดูลคุณสมบัติยังสามารถทำได้ในโปรไฟล์การติดตั้ง เช่นการสร้างประเภทเนื้อหาการกำหนดค่าการอนุญาต ฯลฯ คุณจะตัดสินใจได้อย่างไรว่ามีบางสิ่งอยู่ในโปรไฟล์การติดตั้งหรือในโมดูลคุณลักษณะเมื่อใช้เวิร์กโฟลว์การพัฒนารหัสขับเคลื่อนใน Drupal

4
วิธีบำรุงรักษาโครงการ Drupal บน GitHub
ฉันบำรุงรักษาโมดูลต่าง ๆ บน drupal.org ต้องใช้เวลาหลายปีในการทำสิ่งต่าง ๆ "วิธี drupal" (จดจำ CVS?) ฉันต้องการทำให้ชีวิตของฉันง่ายขึ้นเล็กน้อยและใช้ GitHub ในขณะที่อาจมีเหตุผลทางการเมืองสิ่งนี้อาจไม่เป็นที่พึงปรารถนา แต่มีเหตุผลทางเทคนิคหรือไม่? ฉันคิดว่าการซิงค์แบบทางเดียวอาจเป็นเรื่องง่ายเหมือนงาน cron ที่ผลักดันอย่างรวดเร็วไปข้างหน้าจาก repo Github ไปยัง repo drupal.org ที่เกี่ยวข้อง นั่นคือทั้งหมดที่มีไปหรือไม่ มีเครื่องมือที่มีอยู่เพื่ออำนวยความสะดวกหรือไม่

1
ฉันจะทำ git clone ด้วย drush เพื่อดาวน์โหลดรุ่น HEAD ของโมดูลได้อย่างไร
มีวิธีการโคลนหรือดึงโมดูล HEAD ของโมดูลในที่เก็บ git drupal.org หรือไม่? ตัวอย่างเช่นถ้าฉันใช้ Drupal 7 และสาขาสุดท้ายของ Views คือ 3 ฉันต้องการทำ: drush git-clone views เพื่อให้บรรลุสิ่งที่เทียบเท่ากับ: cd sites/all/modules/ git clone --recursive --branch 7.x-3.x http://git.drupal.org/project/views.git เป็นการดีที่การใช้drush git-clone views-3xควรโคลนสาขา 3.x อย่างชัดเจน เป็นไปได้หรือฉันกำลังฝัน? มันจะมีประโยชน์มากสำหรับการพัฒนา

2
เป็นวิธีที่ดีที่สุดในการเก็บรหัสเว็บไซต์ของคุณเป็น git และดึงในหลักและ contrib ในพื้นที่เก็บข้อมูลเดียวกันได้อย่างไร
ย้อนกลับไปเมื่อ drupal อยู่ใน CVS ฉันมีเว็บไซต์ของฉันในที่เก็บ git แล้วดึงแกนและ contrib ผ่าน CVS ทั้งสองระบบอยู่ร่วมกันอย่างมีความสุขและฉันสามารถติดตามการเปลี่ยนแปลงทุกอย่างและสร้างแพทช์ไปยังโมดูล contrib ขณะนี้มีคอมไพล์ฉันไม่แน่ใจว่าจะเพียงดาวน์โหลด contrib และหลักและตรวจสอบลงในพื้นที่เก็บข้อมูลคอมไพล์ของเว็บไซต์ของฉันหรืออาจใช้ submodules? ฉันสงสัยว่ามีวิธีปฏิบัติที่ดีที่สุดในเรื่องนี้หรือยัง ฉันสับสนโดยเฉพาะอย่างยิ่งเกี่ยวกับวิธีการมีแกนเป็น submodule ถ้า repo ของฉันใช้ไดเรกทอรีราก drupals เป็นรากของตัวเอง?

3
Drush Make ลบโฟลเดอร์. git
หลังจากความรู้สึกโง่ ๆ กับยี่ห้อ drush และ githubฉันพบว่าโฟลเดอร์. git ทั้งหมด (ใช้โดย git เพื่อบันทึกประวัติ config ตำแหน่งต้นทางเป็นต้น) ถูกเอาออกโดย drush make และฉันเคยได้ยินเรื่องนี้มาก่อน แต่ไม่เจอ ตัวเองเพราะฉันไม่ได้ดูแลไฟล์สร้าง make drush โดยเฉพาะจะลบโฟลเดอร์. git และคุณจะเห็นว่าหากคุณเรียกใช้ด้วยตัวเลือก --debug Executing: rm -rf '/tmp/drush_make_tmp_1305733094/__git__/__build__/.git' ในไฟล์ทำของฉันฉันกำลังดึง 4 สิ่งจาก git repo เพราะฉันต้องการติดตามการพัฒนาพวกเขา 2 ในนั้นคือองค์ประกอบที่กำหนดเองของฉัน (1 โมดูลที่กำหนดเองและ 1 คุณสมบัติที่บันทึกการตั้งค่าทั้งหมด) และ drupal core และโมดูลสื่ออื่น ๆ เพื่อแก้ไขปัญหาที่พวกเขาได้รับในปริมาณมาก ดูเหมือนว่าจุดประสงค์ทั้งหมดจะพ่ายแพ้ถ้าฉันไม่สามารถมีโฟลเดอร์. git ที่เกี่ยวข้องได้ …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.