Tất cả dự án

Dự án cá nhân10/2026 – hiện tại

SourceDeck

Git client native cho macOS, viết để thay Sourcetree trong công việc hằng ngày: stage đúng những dòng bạn muốn, viết commit theo một định dạng thống nhất và xem mọi repository trên một màn hình. Phiên bản 1.0.5.

Loại
Dự án cá nhân
Thời gian
10/2026 – hiện tại
Công nghệ
Swift 6SwiftUIAppKitGRDBGitFSEventsSparklemacOS

Tính năng

  • Dashboard cho mọi repository: branch, ahead và behind, số file thay đổi và commit gần nhất; làm mới hoặc fetch tất cả bằng một cú bấm.
  • Stage, unstage hoặc huỷ cả file, từng hunk hay từng dòng chọn trong diff; chữ thay đổi được tô ngay trong dòng.
  • Khung soạn commit dựng message theo định dạng cố định, xem trước đúng nội dung git sẽ nhận và chặn message sai định dạng.
  • Kiểm tra trước mỗi lần commit: file .env, private key, API key hoặc mật khẩu trong các dòng thêm vào; mặc định là bỏ stage.
  • Lịch sử của mọi branch hay từng file, blame, revert, reset, cherry-pick, merge, tag và stash.
  • Đăng nhập remote HTTPS ngay trong app: credential helper của git lưu tài khoản vào Keychain, app không giữ bản sao nào.

Điểm kỹ thuật

  • Chạy git có sẵn trên máy và phân tích output dạng porcelain, nên .gitconfig, hook và tài khoản đã lưu hoạt động y như trong Terminal.
  • Lấy status và ref mất 21–27 ms mỗi repository; Dashboard làm mới 12 repository dưới 0,1 giây với bốn tiến trình git chạy song song.
  • Stage từng dòng bằng patch tự dựng cho git apply --cached, đã kiểm thử với file CRLF và file thiếu ký tự xuống dòng cuối.
  • Mỗi repository một luồng FSEvents, bỏ qua sự kiện trong thư mục bị ignore: build Xcode sạch trong repository đang mở chỉ tốn 0,3% CPU của app.
  • 220 test, tất cả chạy trên repository tạm với git thật, không mock.