1 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Khi cần lướt nhanh qua GitHub diff cỡ lớn ngay trên trình duyệt, DiffsHub là công cụ hiển thị các diff công khai bằng giao diện ảo hóa
  • Chỉ cần thay github.com trong URL GitHub thành diffshub.com là có thể xem ngay các thay đổi của PR, compare, commit, diff và patch
  • Không cần quy trình chuyển đổi riêng, công cụ giữ nguyên cấu trúc URL hiện có, nên có thể đổi github.com/org/repo/pull/number thành diffshub.com/org/repo/pull/number để truy cập
  • Công cụ có thể xử lý cả các so sánh hàng triệu dòng như Linux v6.0...v7.0, nhưng đôi khi có thể làm trình duyệt di động bị crash
  • GitHub có thể phản hồi chậm ở byte đầu tiên và không cung cấp ổn định với các diff vượt quá 100k dòng, nên đây có thể là một lựa chọn thay thế khi xem xét các thay đổi lớn

Trình xem diff dùng nguyên URL GitHub

  • DiffsHub là công cụ giúp xem các GitHub diff công khai bằng giao diện ảo hóa nhanh và dễ nhìn
  • Hỗ trợ PR, compare, commit, diff, patch
  • Người dùng chỉ cần đổi tên miền trong URL GitHub để truy cập
    • github.com/org/repo/pull/number
    • diffshub.com/org/repo/pull/number

Diff hàng triệu dòng và các giới hạn

  • DiffsHub có thể xử lý các bản so sánh ở quy mô hàng triệu dòng
  • Có thể xem ví dụ so sánh Linux v6.0...v7.0
  • Các bản so sánh lớn như vậy đôi khi có thể làm trình duyệt di động bị crash
  • GitHub có thể cung cấp diff vượt quá 100k dòng một cách không ổn định, kèm độ trễ ở byte đầu tiên

1 bình luận

 
Ý kiến trên Lobste.rs
  • Tôi đã cố hiểu việc xem diff có liên quan gì đến thẻ vibecoding Sau đó tôi mới nắm được bối cảnh và drama, và hiểu vì sao lại thành ra như vậy. Xin lỗi @quad vì đã gây ồn ào, và giờ tôi thấy thẻ đó cũng đã bị gỡ rồi

    • Lobsters có vẻ đang bước vào một giai đoạn hơi kỳ lạ, nơi mọi người tự ý phán đoán xem một dự án có “trông như được vibecoded” hay không Ví dụ, họ gắn thẻ vibecoding chỉ vì chất lượng mã thấp, số commit ít, thậm chí chỉ vì trong repo có CLAUDE.md, nên có vẻ chẳng mang nhiều ý nghĩa
    • Trong repo có CLAUDE.md. Ở đây nó đã bị gỡ nhầm, và tôi nghĩ với bài này thì thẻ đó là phù hợp
    • May là bây giờ có vẻ thẻ đó đã biến mất
  • Để bổ sung bối cảnh, bài này có vẻ liên quan: On Rendering Diffs Khi xem Linux diff được liên kết trên trang chủ, cảm giác cũng khá mượt nên rất ấn tượng. Bạn sẽ thấy ngay nếu tự kéo thanh cuộn. Ước gì Github hay các trình chỉnh sửa diff chạy trên trình duyệt khác, và cả Graphite tôi dùng ở chỗ làm, cũng mượt được như vậy Mặt khác, bản thân việc phải trầm trồ vì chuyện này lại thấy hơi kỳ. Chẳng phải lẽ ra đây phải là tiêu chuẩn sao?

    • Tôi biết người đã làm phần lớn công việc render diff và cả tác giả của bài viết đó. Trong quá trình làm, tôi nhận được cập nhật theo thời gian thực qua tin nhắn, và thật đáng kinh ngạc khi họ đã đổ vào đó bao nhiêu nghiên cứu và công sức Theo đúng nghĩa đen, đó là nhiều tháng làm việc toàn thời gian chỉ để render diff nhanh hơn Nhân tiện, dù bị gắn thẻ “vibecoding”, tôi vẫn không hiểu nổi, vì công việc này hoàn toàn không thuộc kiểu đó. Phần lớn là nghiên cứu khó, đọc mã triển khai của trình duyệt, thử đi thử lại, và đào sâu vấn đề theo cách bài bản Agent loop có được dùng cho một số tác vụ thăm dò rất hẹp với phần thưởng rõ ràng, nhưng theo tôi biết thì không có gì được đưa vào mà thiếu insight và review của con người. Có vẻ bài blog cũng đề cập phần này, và nó chiếm tỷ trọng thực sự rất nhỏ trong toàn bộ công việc. Chỉ vì thế mà hạ thấp nỗ lực kỹ thuật thì thật vô lý Tôi rất khuyến nghị đọc bài blog hoặc xem mã nguồn. Đây là công việc đáng kinh ngạc và có rất nhiều điều để học
    • Thật sự thì mức này nên là tiêu chuẩn. Tôi mong Gitlab và Forgejo cũng áp dụng nó Tôi đã làm một bookmarklet để tự thử:
      javascript:(function(){window.open(window.location.href.replace('github.com','diffshub.com'),'_blank');})();
      
      Tiếc là nhiều PR, nhất là PR lớn, cần tính năng bình luận. Chắc phải chờ xem khi nào Pierre sẽ mở rộng sang mảng đó để làm thứ gì đó như https://www.reviewable.io/
  • npmjs nói là Apache 2, nhưng trong repo lại không có license, và trong package.json còn có cả "private":true, nên khó mà hiểu lý do Câu trả lời có vẻ là mỗi thư mục được cấp phép riêng lẻ: https://github.com/pierrecomputer/pierre/… Và bản thân diffshub có vẻ không nằm trong phần mã nguồn mở: https://github.com/pierrecomputer/pierre/… Kiểu cấp phép kiểu phẫu thuật này khiến các thư mục như https://github.com/pierrecomputer/pierre/… rơi vào trạng thái mơ hồ. Lý do là thư mục đó không có Apache 2 LICENCE.md, dù nếu coi trường package.json là có thẩm quyền thì câu chuyện có thể khác

  • UI trông có vẻ tốt hơn Github, ngoại trừ độ tương phản. Còn accessibility thì tôi không rõ

  • Nhân tiện, mọi pull request trên Github đều có thể lấy diff bằng cách thêm .diff vào cuối Ví dụ: https://github.com/oven-sh/bun/pull/30412.diff Nếu thêm .patch thì cũng có thể lấy định dạng để đưa cho git am: https://github.com/oven-sh/bun/pull/30412.patch

    • error: too big or took too long to generate Có phải họ cố tình chọn PR này vì lý do đó không? :D
  • Có thể là do kỳ vọng của tôi với công cụ thấp hơn người khác, nhưng khi so thứ này với chức năng có sẵn của Github, tôi không thấy rõ khác biệt thực tế Ai cũng than phiền Github tệ đến mức nào, nhưng tôi chưa từng có trải nghiệm như vậy. Tôi không hiểu vì sao phải dùng cái này thay cho Github

    • Tôi đã quay một video để cho thấy vì sao điều này quan trọng với tôi. Xin lỗi vì video ở trên X, nhưng tôi đăng nó ở đó Về mặt lịch sử, đây là trải nghiệm thông thường của tôi, và nó cũng giải thích vì sao tốc độ lại quan trọng. Khi một tác vụ chậm đủ lâu, suy nghĩ của tôi sẽ trôi đi chỗ khác, và điều đó phá hỏng trạng thái tập trung rất nhiều Video so sánh song song thời gian để mở PR và chuyển đến một tệp cụ thể. Với tôi đó là công việc thường ngày khá phổ biến https://x.com/mitchellh/status/2057229385963618787
  • Có vẻ khá giống pulldash (do coder.com làm) hoặc difit (CLI mở một trang localhost) Tôi đều không thích lắm. pulldash hơi giật lag, còn difit thì cần thêm công sức. Để self-review, hiện tôi dùng extension VSCode git tree compare Nó nhanh và tôi cũng thích thiết kế trực quan tổng thể của nó. Tôi đã thử với một PR của mình và thấy đủ ổn, thậm chí có thể bookmark trên PC