ฟีเจอร์ X รุ่นใดที่เปิดตัว Y


10

ส่วนใหญ่ของงานประจำวันของฉันคือการพัฒนาซอฟต์แวร์สำหรับการใช้งานบนเครื่องที่มีรุ่นต่าง ๆ ของซอฟต์แวร์เดียวกันเช่นbash, และfind grepเมื่อพบกับคุณลักษณะที่มีประโยชน์เช่นเพื่อทำให้โค้ดง่ายขึ้นสิ่งสำคัญคือต้องทราบว่าคุณลักษณะนี้มีอยู่ในเครื่องมือที่ติดตั้งที่เก่าที่สุดหรือไม่ สำหรับสิ่งที่สำคัญมันจะมีประโยชน์ที่จะทราบว่าคุณลักษณะนี้เป็นของใหม่หรือมีมานานหลายปีในเครื่องมือที่ติดตั้งที่เก่าแก่ที่สุด

สิ่งที่เป็นวิธีที่รวดเร็วในการตอบคำถามนี้authoritativelyเครื่องมือลินุกซ์โดยเฉพาะอย่างยิ่ง GNU หลัก Utils? ความเป็นไปได้บางอย่างเพื่อลดความแม่นยำ:

  • การค้นหาไบนารี่ไบนารี่ (sic) ด้วยการรันเวอร์ชันที่แตกต่างนั้นเป็นคำตอบที่ดีที่สุด แต่ก็ใช้เวลามากที่สุด การติดตั้งที่เก่ากว่ามักไม่พร้อมใช้งานด้วยเหตุผลด้านความปลอดภัย
  • การอ่านรหัสเกือบจะดี แต่อาจต้องใช้เวลานานหากคุณลักษณะนั้นมีชื่อคลุมเครือชื่อนั้นไม่ตรงกับชื่อตัวแปร / ฟังก์ชัน / วัตถุโดยตรงหรือถูกนำไปใช้ก่อนที่จะเปิดใช้งาน
  • เปลี่ยนบันทึก (ถ้ามี) โดยปกติแล้วจะเชื่อมต่อการเปลี่ยนแปลงคุณสมบัติกับรุ่นซอฟต์แวร์
  • บันทึกการกระทำสามารถให้คำแนะนำได้ แต่ไม่ทราบว่าจะมีการรวมรุ่นใดไว้ด้วย
  • หน้าคนไม่ค่อยพูดถึงวันที่
  • เช่นเดียวกับGooglingและคุณอาจประสบปัญหาในการยกเว้นแหล่งที่ไม่ได้รับอนุญาตทั้งหมด

คุณช่วยอธิบายเหตุผลของคำถามนี้ได้ไหม?
Faheem Mitha

ISTM ที่ถ้าคุณต้องย้ายซอฟต์แวร์ไปยังแพลตฟอร์มที่แตกต่างกันเหล่านี้คุณจะต้องมีการติดตั้ง "ที่เก่าแก่ที่สุด" ในบางที่ ดังนั้นคำตอบที่ค่อนข้างรวดเร็วและเชื่อถือได้ควรลองใช้กับแพลตฟอร์มนั้น ในอุดมคติบนแพลตฟอร์มทั้งหมด (ถ้าคุณเขียนกรณีทดสอบเป็นสคริปต์คุณสามารถส่งไปยังแพลตฟอร์มการย้ายพอร์ตทั้งหมดของคุณและรับชุดการตอบสนองใช่ / ไม่ใช่)
roaima

คำตอบ:


7

โดยทั่วไปมีการเปลี่ยนแปลง อันที่จริงแล้ว GPL ต้องการ! (หรือ "การแจ้งเตือนที่โดดเด่น" ของการเปลี่ยนแปลง) นี้! (อย่างน้อยมีประสิทธิภาพดังนั้นสำหรับทุกสิ่งที่มีผู้มีส่วนร่วมหลายคน - ดู GPLv2 ส่วนที่ 2a)

สำหรับแพ็คเกจ coreutils ของ GNU - และสำหรับทุกอย่างอื่น ๆ จากโครงการ GNU โดยตรง - ไฟล์นี้เป็นที่แรกที่ต้องดูและควรตอบคำถามของคุณ 95%


คุณมีการอ้างอิงถึงบันทึกการเปลี่ยนแปลง coreutils หรือไม่? ใหม่ล่าสุดที่ฉันสามารถหาได้คือตั้งแต่ปี 2007
l0b0

2
Coreutils GNU ChangeLog ยังไม่ได้รับการปรับปรุงตั้งแต่ปี 2550 cvs.savannah.gnu.org/viewvc/coreutils/ ...... คุณต้องดูบันทึก git ตอนนี้
มิเคล

2
มันอาจจะสร้างขึ้นโดยอัตโนมัติจากบันทึก git มีChangeLog.bz2ใน/usr/share/doc/coreutils-8.10ในระบบ Fedora 2011-02-04ของฉันและรายการด้านบนจาก อาจเป็นไปได้ว่านี่คือทางแยก RH - ฉันจะตรวจสอบในภายหลังว่าวันนี้
mattdm

@mattdm: มี /usr/share/doc/coreutils/changelog.gz บน Ubuntu - ขอบคุณ! น่าเสียดายที่มันเพิ่งย้อนกลับไปในปี 2008 ซึ่งล่าสุดเกินไปสำหรับเครื่องมือบางอย่างที่เกี่ยวข้อง ฉันคิดว่ามันต้องใช้เวลามากกว่าที่คนสุดท้ายจะจบลง
l0b0

3
นี่คือบทพิสูจน์: git.savannah.gnu.org/cgit/coreutils.git/tree/HACKING เลื่อนไปที่บรรทัดที่ 131
Shinnok

4

ทำไมไม่ใช้การควบคุมแหล่งที่มา afferent เพื่อ X เพื่อค้นหาคุณสมบัติ Y? repo ของแหล่งที่มาเป็นวิธีที่ดีที่สุดในการระบุเมื่อมีการแนะนำคุณลักษณะเฉพาะ

สำหรับ coreutils คุณสามารถไปที่http://git.savannah.gnu.org/cgit/coreutils.gitและค้นหาคำหลักที่เกี่ยวข้องกับ Y ในข้อความบันทึกหรือบรรทัดของรหัสที่คุณระบุว่าเป็นของ Y คุณสามารถทำได้ใน อินเตอร์เฟซเว็บได้โดยตรงหรือดียิ่งขึ้น, โคลน repo แหล่งที่มากับสถานีของคุณและค้นหาโดยใช้Git-แบ่งครึ่ง , คอมไพล์ตำหนิและ--grep คอมไพล์เข้าสู่ระบบ

จากนั้นใช้git-อธิบายเพื่อหาแท็กที่ใกล้เคียงที่สุดเพื่อยอมรับเฉพาะ แท็กส่วนใหญ่จะใช้สำหรับหมายเลขเวอร์ชันดังนั้นจะให้เวอร์ชันที่แนะนำการส่งมอบให้คุณ

คุณสามารถปรับวิธีการข้างต้นขึ้นอยู่กับ X และเป็นแหล่งควบคุม


คุณจะระบุได้อย่างไรว่าคอมมิท / ไลน์ใดที่เข้าสู่เวอร์ชันของซอฟต์แวร์ นอกจากนี้การค้นหาสะวันนาจะไม่ดีเสีย - ไม่มีผลสำหรับสตริงซึ่งจะเห็นได้ชัดในข้อความเข้าสู่ระบบเดียวกัน
l0b0

ใช้git-อธิบายเพื่อหาแท็กที่ใกล้เคียงที่สุดเพื่อยอมรับเฉพาะ แท็กที่ใช้สำหรับหมายเลขรุ่นส่วนใหญ่ สำหรับสะวันนาที่ถูกทำลายคุณไม่สามารถทำอะไรได้มากนัก Git โคลนพื้นที่เก็บข้อมูลไปยังกล่องของคุณและทำงานในแบบของคุณโดยใช้คำสั่ง git ฉันอธิบายไว้ในโพสต์
Shinnok

1

บนแพลตฟอร์มDebianและ Debian ที่ได้รับเช่นUbuntu :

sudo apt-get changelog coreutils > changelog.txt 

ให้ GNU 4.5.1-1แกนยูทิลิตี้การเปลี่ยนแปลงตลอดทางกลับไปเป็นเวอร์ชั่น

ไม่แน่ใจว่ามีวิธีแก้ไขปัญหาที่สะดวกเช่นเดียวกันในแพลตฟอร์มอื่นหรือไม่


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