Bukankah itu agak mengalahkan titik kendali versi?
Phoshi
2
Jika Anda seorang programmer, mungkin. Tetapi bagi mereka yang menggunakan emacs untuk menulis daripada kode, saya pikir ini cukup berguna.
Brian Z
Jawaban:
3
Jika Anda ingin berkomitmen setiap kali menyimpan, Anda akan melakukan:
(add-hook 'after-save-hook 'my-commit-on-save)
(defun my-commit-on-save ()
"commit the buffer"
...your-code-goes-here...)
Kemungkinan Anda hanya bisa menggunakan
(defun my-commit-on-save ()
"commit the buffer"
(call-interactively 'vc-next-action))
Tapi, Anda ingin menambahkan beberapa cek untuk memastikan itu adalah bagian dari set file yang ingin Anda komit, jika tidak setiap buffer yang Anda simpan akan ditambahkan ke repositori.
Berikut adalah sedikit cadel yang saya temukan. Tidak melakukan komit / mendorong pada setiap simpan, tetapi jadwalkan untuk waktu dekat jadi jika Anda menyimpan banyak suntingan kecil Anda tidak mendapatkan banyak komitmen kecil.
;; Automatically add, commit, and push when files change.(defvar autocommit-dir-set '()"Set of directories for which there is a pending timer job")(defun autocommit-schedule-commit (dn)"Schedule an autocommit (and push) if one is not already scheduled for the given dir."(if(null (member dn autocommit-dir-set))(progn(run-with-idle-timer10nil(lambda(dn)(setq autocommit-dir-set (remove dn autocommit-dir-set))(message (concat "Committing org files in " dn))(shell-command (concat "cd " dn " && git commit -m 'Updated org files.'"))(shell-command (concat "cd " dn " && git push & /usr/bin/true")))
dn)(setq autocommit-dir-set (cons dn autocommit-dir-set)))))(defun autocommit-after-save-hook ()"After-save-hook to 'git add' the modified file and schedule a commit and push in the idle loop."(let((fn (buffer-file-name)))(message "git adding %s" fn)(shell-command (concat "git add " fn))(autocommit-schedule-commit (file-name-directory fn))))(defun autocommit-setup-save-hook ()"Set up the autocommit save hook for the current file."(interactive)(message "Set up autocommit save hook for this buffer.")(add-hook 'after-save-hook'autocommit-after-save-hooknilt))
Lebih baik menyalin dan menempelkan informasi yang relevan dari halaman yang ditautkan daripada hanya menautkannya jika konten halaman berubah atau bergerak.
Tog
2
Anda tidak perlu emacs untuk itu sama sekali. Anda dapat menulis skrip shell yang menggunakan inotify. Itu bisa terlihat seperti ini:
while true; do
inotifywait -e modify FILES...
git commit ....
done
Jawaban:
Jika Anda ingin berkomitmen setiap kali menyimpan, Anda akan melakukan:
Kemungkinan Anda hanya bisa menggunakan
Tapi, Anda ingin menambahkan beberapa cek untuk memastikan itu adalah bagian dari set file yang ingin Anda komit, jika tidak setiap buffer yang Anda simpan akan ditambahkan ke repositori.
sumber
Saya menggunakan git-wip untuk itu (lihat jawaban saya di SO).
sumber
Berikut adalah sedikit cadel yang saya temukan. Tidak melakukan komit / mendorong pada setiap simpan, tetapi jadwalkan untuk waktu dekat jadi jika Anda menyimpan banyak suntingan kecil Anda tidak mendapatkan banyak komitmen kecil.
https://gist.github.com/defunkt/449668
sumber
Anda tidak perlu emacs untuk itu sama sekali. Anda dapat menulis skrip shell yang menggunakan inotify. Itu bisa terlihat seperti ini:
inotifywait adalah bagian dari inoftify-tools.
sumber
Anda juga dapat menggunakan utilitas git-monitor saya , terutama jika Anda adalah pengguna Haskell.
sumber
Coba sesuatu seperti ini:
Ini adalah cara emacs untuk melakukannya.
sumber
save-buffer
sudah memberikan variabel yang sangat baikafter-save-hook
.