1 คะแนน โดย GN⁺ 4 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อต้องการไล่ดู GitHub diff ขนาดใหญ่ อย่างรวดเร็วในเบราว์เซอร์ DiffsHub คือเครื่องมือที่แสดง public diff ด้วย อินเทอร์เฟซแบบ virtualization
  • เพียงเปลี่ยน github.com ใน URL ของ GitHub เป็น diffshub.com ก็สามารถดูการเปลี่ยนแปลงของ PR, compare, commit, diff และ patch ได้ทันที
  • ใช้งานได้โดยคงโครงสร้าง URL เดิมไว้โดยไม่ต้องผ่านขั้นตอนแปลงเพิ่มเติม เช่น เปลี่ยนจาก github.com/org/repo/pull/number เป็น diffshub.com/org/repo/pull/number
  • รองรับการเปรียบเทียบระดับ หลายล้านบรรทัด อย่าง Linux v6.0...v7.0 ได้ แต่บนเบราว์เซอร์มือถืออาจแครชเป็นครั้งคราว
  • GitHub อาจตอบสนองด้วย first byte ที่ล่าช้าและให้บริการได้ไม่เสถียรสำหรับ diff ที่เกิน 100k บรรทัด จึงอาจเป็นทางเลือกสำหรับการรีวิวการเปลี่ยนแปลงขนาดใหญ่

โปรแกรมดู diff ที่ใช้ URL ของ GitHub ได้ตามเดิม

  • DiffsHub เป็นเครื่องมือสำหรับดู public GitHub diff ด้วยอินเทอร์เฟซแบบ virtualization ที่รวดเร็วและอ่านง่าย
  • รองรับ PR, compare, commit, diff, patch
  • ผู้ใช้เข้าถึงได้โดยเปลี่ยนเฉพาะโดเมนใน URL ของ GitHub
    • github.com/org/repo/pull/number
    • diffshub.com/org/repo/pull/number

diff ระดับหลายล้านบรรทัดและข้อจำกัด

  • DiffsHub รองรับการเปรียบเทียบขนาดหลายล้านบรรทัดได้
  • ตัวอย่างดูได้ที่ การเปรียบเทียบ Linux v6.0...v7.0
  • การเปรียบเทียบขนาดใหญ่มากลักษณะนี้อาจทำให้ เบราว์เซอร์มือถือ แครชได้เป็นครั้งคราว
  • GitHub อาจให้บริการ diff ที่เกิน 100k บรรทัด อย่างไม่เสถียร พร้อม first byte ที่ล่าช้า

1 ความคิดเห็น

 
GN⁺ 4 시간 전
ความคิดเห็นจาก Lobste.rs
  • ตอนแรกพยายามจะเข้าใจว่าการดู diff มันเกี่ยวอะไรกับ แท็ก vibecoding
    จากนั้นก็ตามบริบทและดราม่าจนเข้าใจว่าทำไมถึงกลายเป็นแบบนี้ ขอโทษ @quad ที่ทำให้เกิดความวุ่นวาย และตอนนี้ก็เห็นแล้วว่าแท็กนั้นถูกลบออกไปแล้ว

    • ดูเหมือนว่า Lobsters จะเข้าสู่ช่วงแปลก ๆ ที่คนพากันตัดสินกันเองว่าโปรเจ็กต์ไหน “ดูเหมือน vibecoded หรือเปล่า”
      ตัวอย่างเช่น แค่คุณภาพโค้ดต่ำ จำนวนคอมมิตน้อย หรือแม้แต่มี CLAUDE.md อยู่ในรีโพ ก็โดนติดแท็ก vibecoding กันแล้ว ซึ่งดูเหมือนไม่มีความหมายอะไรนัก
    • มี CLAUDE.md อยู่ในรีโพ ที่นี่มันถูกลบออกอย่างผิดพลาด และฉันคิดว่าในโพสต์นี้ถือว่าเป็นแท็กที่เหมาะสม
    • โชคดีที่ตอนนี้แท็กนั้นน่าจะหายไปแล้ว
  • ถ้าเอาบริบทเพิ่ม โพสต์นี้ก็น่าจะเกี่ยวข้อง: On Rendering Diffs
    ตอนลองดู Linux diff ที่ลิงก์ไว้บนหน้าโฮมเพจก็ลื่นมากจนน่าประทับใจ ลองลากสกรอลล์บาร์เองแล้วจะเห็นเลย อยากให้ Github หรือ diff editor บนเบราว์เซอร์อื่น ๆ รวมถึง Graphite ที่ใช้ในที่ทำงาน ลื่นได้ระดับนี้บ้าง
    อีกมุมหนึ่งก็แปลกดีที่เราต้องมาทึ่งกับเรื่องแบบนี้ เพราะมันน่าจะเป็นมาตรฐานตั้งแต่แรกไม่ใช่หรือ

    • ฉันรู้จักทั้งคนที่ทำงานด้าน diff rendering เป็นหลักและผู้เขียนบทความนั้น ระหว่างที่ทำเขาส่งอัปเดตสดทางข้อความมาให้ตลอด และมันน่าทึ่งมากว่าทุ่มทั้งการค้นคว้าและงานลงไปมากแค่ไหน
      เอาจริง ๆ คือมีการทำงานเต็มเวลาหลายเดือนเพื่อให้ เรนเดอร์ diff ได้เร็ว
      และถึงจะมีแท็ก “vibecoding” ติดอยู่ ฉันก็ยังไม่เข้าใจอยู่ดี เพราะงานนี้ไม่ใช่แบบนั้นเลย ส่วนใหญ่เป็นการค้นคว้ายาก ๆ อ่านโค้ด implementation ของเบราว์เซอร์ ลองผิดลองถูก และขุดปัญหาแบบวิศวกรรมจริงจัง
      มีการใช้ agent loop กับงานสำรวจที่แคบมากและให้ผลตอบแทนชัดเจน แต่เท่าที่ฉันรู้ ไม่มีอะไรถูกใส่เข้าไปโดยไม่มี insight และการตรวจทานจากมนุษย์ บทความบล็อกก็น่าจะพูดถึงจุดนี้เหมือนกัน และมันเป็นสัดส่วนเล็กมากของงานทั้งหมด จะเอาแค่นั้นมาดูแคลน ความพยายามทางวิศวกรรม ก็ดูไม่สมเหตุสมผล
      แนะนำอย่างมากให้อ่านบทความบล็อกหรือไปดูโค้ด งานนี้น่าทึ่งและมีอะไรให้เรียนรู้เยอะ
    • ระดับนี้แหละที่ควรเป็นมาตรฐานจริง ๆ หวังว่า Gitlab กับ Forgejo จะรับแนวทางนี้ไปใช้ด้วย
      ฉันทำ bookmarklet ไว้สำหรับลองเอง:
      javascript:(function(){window.open(window.location.href.replace('github.com','diffshub.com'),'_blank');})();  
      
      น่าเสียดายที่ PR จำนวนมาก โดยเฉพาะ PR ใหญ่ ๆ ยังต้องมีฟีเจอร์คอมเมนต์อยู่ คงต้องรอดูว่า Pierre จะขยายมาถึงพื้นที่นี้เมื่อไร และอาจทำอะไรคล้าย https://www.reviewable.io/ ได้หรือไม่
  • npmjs ระบุว่าเป็น Apache 2 แต่ในรีโพไม่มีไลเซนส์ และใน package.json ยังมี "private":true อยู่ด้วย เลยหาสาเหตุได้ยาก
    คำตอบดูเหมือนจะเป็นว่าแต่ละไดเรกทอรีถูกไลเซนส์แยกกัน: https://github.com/pierrecomputer/pierre/…
    และตัว diffshub เองก็ดูเหมือนจะไม่รวมอยู่ในส่วนโอเพนซอร์ส: https://github.com/pierrecomputer/pierre/…
    วิธีทำ ไลเซนส์แบบผ่าตัดเฉพาะจุด แบบนี้ทำให้ไดเรกทอรีอย่าง https://github.com/pierrecomputer/pierre/… อยู่ในสถานะกำกวม เพราะในไดเรกทอรีนั้นไม่มี Apache 2 LICENCE.md แม้ว่าเรื่องนี้อาจเปลี่ยนได้ถ้าถือว่า ฟิลด์ใน package.json เป็นแหล่งอ้างอิงที่เชื่อถือได้

  • UI ดูดีกว่า Github ยกเว้นเรื่อง คอนทราสต์ ไม่แน่ใจเรื่องการเข้าถึง

  • เผื่อใครยังไม่รู้ pull request ทุกอันบน Github สามารถเติม .diff ต่อท้ายเพื่อดึง diff ได้
    เช่น: https://github.com/oven-sh/bun/pull/30412.diff
    และถ้าเติม .patch ก็จะได้รูปแบบที่ส่งเข้า git am ได้: https://github.com/oven-sh/bun/pull/30412.patch

    • error: too big or took too long to generate
      เลือก PR นี้มาเพราะเหตุผลนี้โดยตั้งใจหรือเปล่า? :D
  • อาจเป็นไปได้ว่าฉันคาดหวังกับเครื่องมือต่ำกว่าคนอื่น แต่พอเทียบกับฟีเจอร์ใน Github เองแล้ว ฉันยังไม่ค่อยเห็น ความต่างเชิงปฏิบัติ
    ทุกคนบ่นกันว่า Github แย่แค่ไหน แต่ฉันไม่เคยเจอประสบการณ์แบบเดียวกัน เลยยังไม่รู้ว่าทำไมต้องใช้สิ่งนี้แทน Github

    • ฉันอัดวิดีโอไว้ให้ดูว่าทำไมสิ่งนี้ถึงสำคัญกับฉัน ขอโทษที่วิดีโออยู่บน X แต่ฉันอัปไว้ที่นั่น
      ในอดีตนี่คือประสบการณ์ทั่วไปของฉัน และมันอธิบายได้ว่าทำไมความเร็วจึงสำคัญ ถ้างานบางอย่างช้าพอนานพอ ความคิดฉันจะลอยไปเรื่องอื่น และมันทำลาย สภาวะจดจ่อ อย่างมาก
      ในวิดีโอมีการเทียบเวลาแบบเคียงกัน ระหว่างการเปิด PR แล้วไปยังไฟล์ที่ต้องการ ซึ่งเป็นงานประจำที่ฉันทำค่อนข้างบ่อย
      https://x.com/mitchellh/status/2057229385963618787
  • ดูคล้าย pulldash(ทำโดย coder.com) หรือ difit(CLI ที่เปิดหน้า localhost) พอสมควร
    ฉันไม่ค่อยชอบทั้งสองอย่าง pulldash มีอาการหน่วงนิด ๆ ส่วน difit ต้องออกแรงเพิ่ม สำหรับ self-review ตอนนี้ฉันใช้ส่วนขยาย VSCode git tree compare
    อันนี้เร็วและฉันก็ชอบภาพรวมด้านดีไซน์ด้วย ฉันลองกับ PR ของตัวเองอันหนึ่งแล้วก็ดูดีพอสมควร และน่าจะบุ๊กมาร์กเก็บไว้ใช้บนพีซีได้