gumara

เหนือกว่าเหตุผล ผมไม่มีเหตุผล

Launchpad.net

launchpad dream

พอดีเข้าไปไล่ดูงานที่ต้องตรวจใน launchpad ตามปกติ เจอคำที่คุณ manop ส่งมา เป็นคำใน grub ก็เลยจะไปไล่ดูหน่อยว่า grub ต้นน้ำมันเป็นไง ได้จัดการให้ตรงกัน เลยเสริช google ดูไปเจอ grubng สงสัยว่าคืออะไรเลยเข้าไปดูซะหน่อย ก็เป็นโปรแกรมอะไรสักอย่างที่ไม่เคยใช้เหมือนกัน

ก็ปรากฏว่าเจอข้อความนี้

If you prefer other way to help translate GrubNG C# client, you can use Launchpad translation: https://translations.launchpad.net/grubng

คิดว่านี่คงเป็นฝันของ launchpad เลย

ปล. เคยคุยกะจรูญอยู่หลายปีละ ว่าทาง launchpad มีแผนจะ merge คำใน launchpad กับ ต้นน้ำให้เอง แต่ก็ยังไม่เห็นว่าเป็นไงบ้าง

which file to merge

สืบเนื่องจากต้อง merge ไฟล์จาก trunk เข้า branch เพื่ออัพเดทงานแปล ทีนี้ก็ยังงงวิธีการทำงานของ LP อยู่ คือตามเซนส์แล้ว มันควรจะอัพเดทเฉพาะ pot มา แล้วพอเราเห็นว่า pot มันอัพเดทเราค่อย merge po เราเข้ากับ pot ใหม่ แต่กรณ๊ LP นี่ไม่ใช่ครับ คือพี่เล่นไม่อัพเดท pot แต่อัพเดท po ของภาษาเรามาเลย แล้วไอ้ที่อัพเดทของพี่แกนี่ก็ไม่ใช่ว่า merge คำให้แล้วอัพเดทลงมานะ (คือจริงๆพอมี branch แล้วก็ยากที่จะ merge จาก branch เข่ trunk ได้อยู่แล้ว)

ดังนั้นแปลว่า ถ้า po อัพเดทมาจะเกิด conflict ซึ่ง bzr มันก็บอกให้ พร้อมกับแยกไฟล์ให้ โดยถ้าเกิดมี conflict มันจะแยกไฟล์จาก th.po เป็น th.po, th.po.BASE, th.po.OTHER, th.po.THIS คือจากไฟล์เดียวที่ conflict มันแยกให้เป็น 4 ไฟล์ ก็งงดิคับ จริงๆ มันแยกเป็น 2 ไฟล์ก็พอ คือไฟล์ของเราปัจจุบัน กับไฟล์ใหม่จาก trunk แค่นี้พอแล้ว เลยงงเลย

โดยปกติก็ไม่เคย merge งานเอง ปกติถ้าแปลก็มีหน้าที่โยนงานให้ @theppitak ตอนนี้มาดูเองเลยต้องรู้ไว้หน่อย ไม่รู้ VCS ตัวอื่นๆ มันเหมือน bzr ป่าว

ก็พอมันแยกไฟล์แบบนี้เลยผมก็เลยไม่รู้ว่า อันไหนไฟล์ branch อันไหนไฟล์ trunk ก็เลยใช้วิธี ไปดูดจากหย้าเว็บ แล้วมา check sum เอา ผลลัพธ์ตามด้านล่างนี้

gumara@user-desktop:~/bzr/ubiquity-l10n-th$ md5sum /home/gumara/Downloads/th*
cb6cf2e82f58b29aaf72e972d24ed858 /home/gumara/Downloads/th-branch.po
7545f0656854ce65b63a95c642528258 /home/gumara/Downloads/th-trunk.po

gumara@user-desktop:~/bzr/ubiquity-l10n-th$ md5sum po/th*
a530473c367b8bb18ef3ed3c19524df4 po/th.po

Request to droping translation branch

ได้รับเมล์จากทีม UbuntuOne Client บอก Branch ที่แตกมาทำงานแปลนั้น ขอให้ใช้ตัว PO Importer เอา

เซ็งเลย ก็พอเข้าใจว่าการต้องมาตรวจทุก Branch ที่ push เข้าไปมันค่อนข้างเหนื่อย แต่อันนี้มันแตกมาโดยใช้ทีมแปลของภาษานั้นๆ เป็นเจ้าของ แถมไฟล์ที่ push ขึ้นไปมันก็มีแต่ po ของภาษาที่เราทำ ก็น่าจะปล่อยๆ มั่งนา

ก็ สรุปว่า เดี๋ยวจะ drop branch นั้น แล้วคงมาตั้ง branch เองภายในหน้าของทีม แล้วเวลาเอาเข้าเดี๋ยวใช้ po importer เอา แบบนี้ละกัน

คิดว่าประโยชน์หนึ่งของการใช้ po importer คือ มันจะได้ช่วยเช็คซินแท็กให้ด้วย แล้วไม่ต้องรอคิว merge แต่ก็จะต้องแลกด้วยความสะดวก คือผมต้องเข้าหน้าเว็บเรื่อยๆ เพื่อไป import po ถ้าทำผ่าน branch เอาเลยมันก็สะดวกผมกว่าตรง จะเอาขึ้นเอาลงก็อยู่ใน terminal อย่างเดียว

ไม่ได้เป็นเจ้าของโปรเจคก็ต้องตามๆเขาไป ห้ามเรื่องมาก

ตั้ง branch งานแปล

ครั้งก่อนโน๊ตไว้แล้ว แต่ผิดนิดนึง จดใหม่

วิธีแตก branch

  • เข้าไปโปรเจคที่ต้องการ เลือก summit code
  • สร้างโปรเจคให้ชื่อเดียวกัน แล้วต่อด้วย -l10n-th
  • branch โปรเจคหลักมาไว้ในเครื่อง
  • push ไปไว้ที่ project ใหม่ (push ครั้งแรกมันจะ error ให้ใส่ option ตามที่ bzr มันแนะนำ)
  • ลบของที่อยู่ในเครื่องทิ้งไปแล้ว branch ที่โปรเจคใหม่ลงมา
  • เวลาจะ update ก็ bzr merge โปรเจคหลัก
  • เวลา push ก็ push เข้าไปที่โปรเจคของเรา
  • ได้งานเยอะระดับนึงก็ค่อย push ขึ้นไปที่โปรเจคหลัก

หลังจากวาง branch แล้วก็ลองไล่เช็คดู พบว่า งานที่แปลใน rosetta มันไม่ได้เข้า trank ซึ่งเข้าใจว่า มันคงไป merge กันให้ภายหลัง ทีนี้ ปัญหาคือ ในขณะที่ทำงานก่อนที่มันจะ merge เราจะทำยังไงให้คนที่ทำงานใน trank กับใน rosetta มันไม่ซ้อนกันให้เสียเวลา @anoochit บอกว่า อันนี้มันต้องคุยกันเอง launchpad มันเป็นแค่เครื่องมือ

แต่ผมมองว่าไม่อ่ะ launchpad มันต้องทำให้ดีกว่านี้ ถ้ามันจะอย่างนี้แล้ว มันก็ควรจะแยก branch ของงานแปลมาเป็นอีกโครงการหนึ่งไปเลย ให้คนที่ทำใน trank กับใน rosetta มัน sync ได้ตรงกันตลอดเวลา แล้วค่อยไป merge รวมกันทีหลัง พร้อมๆกัน มันควรจะแบบนี้สิ

create branch for translation

กลับมาจากอยุธยา มาถึงก็โซโล่ ubuntu translation ต่อ ก่อนไปก็ดูๆเรื่องการแปลผ่าน bzr ไว้ แต่เดิมก็เคยงงๆ แต่ตอนนี้หลังจากลองผิดลองถูกมาก็คิดว่าน่าจะได้วิธีที่ถูกต้องละ (เลวมาก ไม่ยอมอ่าน manual) จริงๆ จรูญก็ส่งลิงก์มาให้อ่านละ แต่ยังมีงงๆเรื่องความสัมพันธ์ของโครงการ

ตอนนี้เซ็ต branch เรียบร้อย คิดว่าน่าจะทำถูกวิธีละ คือตามนี้

  • เข้าไปที่หน้า ubuntu-manual ไป register branch จริงๆ ก็คือการสร้าง branch ใหม่นั่นเอง
  • ระบุ branch ใหม่ว่า เจ้าของเป็น lp-l10n-th แล้วมันจะไปโผล่ในหน้า lp-l10n-th เอง
  • ก็ bzr branch จาก lp:ubuntu-manual ออกมา
  • ครบแล้วก็ bzr push กลับขึ้นไปที่ branch ของ lp-l10n-th
  • แล้วก็ทำงานที่ branch ของ lp-l10n-th
  • เวลาจะอัพเดทก็สั่ง bzr pull lp:ubuntu-manual ที่ branch ของ lp-l10n-th
  • เวลาจะ merge เข้าโครงการหลัก มันจะมีปุ่มให้ request merge ที่หน้าเว็บ
  • ทีนี้ถ้าใครต้องการจะแตก branch ไปแปลต่อ ก็ให้แตกไปจาก lp-l10n-th

คิดว่าวิธีนี้น่าจะถูก

ปล.เกลียด bzr มัน branch เฉพาะโฟลเดอร์ไม่ได้ ฮาร์ดดิสก์ก็ตัวกะป๊อย branch มาทั้งโครงการ เพื่อมาแก้ po แค่ไฟล์เดียว


Let's chat

Comment

Tags

tweets

del.icio.us/~

Another ~

The Ubuntu Counter Project - user number # 5754
Add to Technorati Favorites