Tạo ra 1 bản sao với source chính, source chính không có comment, bản sao có comment

mình muốn hỏi là có ứng dụng nào, hoặc câu lệnh git nào giúp mình đạt được mục tiêu như sau không:

mình code project, họ ko cho cmt bất cứ thứ gì vào code, ngoại trừ việc đặc tả chung về tham số của hàm, và thông tin người code hàm đó

nên mình hay làm như sau để cmt vào code để sau này đọc lại cho dễ hiểu, mình dùng git tạo ra 1 branch giống branch đang làm, mỗi khi làm mình sẽ cmt, hint, giải thích logic rõ trong code trong 1 branch , xong làm hết xong mình , xóa hết cmt và checkout sang branch kia để push

nói chung làm thế này cũng tạm ổn, nhưng mình thấy thủ công quá, ko biết có tool nào giúp mình đạt được mục đích là : tạo ra 1 bản sao với source chính, source chính sẽ ko có cmt , bản sao sẽ có cmt

  1. Create/Open gitattributes file:
  • /.gitattributes (will be committed into repo)
    OR
  • /.git/info/attributes (won’t be committed into repo)
  1. Add a line defining the files to be filtered:
  • *.rb filter=gitignore , i.e. run filter named gitignore on all *.rb files
  1. Define the gitignore filter in your gitconfig :
  • $ git config --global filter.gitignore.clean "sed '/#gitignore$/'d" , i.e. delete these lines
  • $ git config --global filter.gitignore.smudge cat , i.e. do nothing when pulling file from repo

mình search trên stack có chỉ làm thế này, ko biết có ổn không, vì mình gà github, sợ làm bậy bạ hư code @@

mình test thử , thấy khi checkout hay rebase nhánh khác vào là nó xóa hết luôn, chắc cách này ko đc

2 Likes

Chúng ta là dev mà, nếu phần mềm nào đó không đáp ứng được nhu cầu thì chúng ta viết mới

  • Nếu là mình mình sẽ viết 1 program quét toàn bộ package rồi replace dòng comment bằng rỗng.
  • So soánh khoảng thời gian bạn research 2 - 3h thì khoảng thời gian đó chắc cũng code xong.

Chúc bạn sớm tìm ra giải pháp

thực ra cái này nó chỉ là xóa dòng comment, cái mình muốn là push code lên repo thì ko có dòng comment, nhưng ở dưới local vẫn có dòng comment, chứ xóa comment đi thì mình đừng comment luôn, hoặc viết tool, sử dụng lệnh git diff để kiểm tra là đc mà

hiện giờ vẫn chưa thấy tool nào hay ai làm đc cái này, chắc phải làm thủ công thôi

Cậu có thể viết comment vào source code như thường. Trước khi push code, cậu chỉ cần:

  • Loại bỏ comment mà cậu muốn bỏ đi. Cậu nên có cú pháp để phân biệt nó với comment mà cậu muốn giữ lại.
    File trước khi bỏ sẽ được backup lại, file sau khi bỏ sẽ là file mà cậu sẽ push lên. Cậu cũng nên thêm vào gitignore đuôi file backup của cậu.
    Cậu chỉ cần 1 lệnh sed đơn giản để làm việc này.
  • Sau khi push code lên, cậu rollback lại file có comment của cậu.
    Cậu cũng chỉ cần một vài lệnh đơn giản để làm việc này.

Cậu có thể đặt các bước trên (tính cả push) vào 1 script đơn giản, đặt nó vào bin folder. Từ đó, cậu có command riêng của mình để làm thứ mà cậu cần.
Tớ rất xin lỗi vì không có script demo cho cậu, và tớ cũng chưa thử test xem ý tưởng trên có hoạt động không, cơ mà tớ nghĩ script đó đủ dễ để cậu tự làm được, nên cậu thử nha :smile:

Hope it helps!

1 Like

mình thử rồi , cách này thì ổn để backup , nhưng nó ko update đc code pull từ repo về local, lúc fetch về code sẽ chỉ merge với file ko gitignore , nên thành ra code trong các file backup ko đc update, nên sẽ quay lại với việc update bằng tay :smiley:

1 Like

Ah nhỉ, tớ miss đoạn này :smile:
Vậy thì tớ không giúp được cậu lần này rồi. Sorry nha! :smile:

Cơ mà, theo ý kiến cá nhân tớ, tớ thấy nếu code mà cần comment quá chi tiết để hiểu được đồng nghĩa với code readability rất tệ. Có lẽ bên cậu cần cân nhắc refactor code nếu có thời gian.
Giải pháp đó sẽ bền vững, và tăng productivity của cả team, chứ không phải giải pháp cục bộ như việc cậu đang tìm cách thực hiện.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?