summaryrefslogtreecommitdiffstats
path: root/git-auto-commit-mode.el
diff options
context:
space:
mode:
Diffstat (limited to 'git-auto-commit-mode.el')
-rw-r--r--git-auto-commit-mode.el21
1 files changed, 18 insertions, 3 deletions
diff --git a/git-auto-commit-mode.el b/git-auto-commit-mode.el
index 5d2b840..d3bb5e7 100644
--- a/git-auto-commit-mode.el
+++ b/git-auto-commit-mode.el
@@ -1,8 +1,23 @@
+(defun git-auto-commit-relative-file-name (filename)
+ "Find the path to the filename relative to the git directory"
+ (let* ((git-dir
+ (replace-regexp-in-string
+ "\n+$" "" (shell-command-to-string
+ "git rev-parse --show-toplevel")))
+ (relative-file-name
+ (replace-regexp-in-string
+ "^/" "" (replace-regexp-in-string
+ git-dir "" filename))))
+ relative-file-name))
+
(defun git-auto-commit ()
"Commit `buffer-file-name` to git"
- (let ((filename (buffer-file-name)))
- (shell-command (concat "git add " filename
- " && git commit -m '" filename "'"))))
+ (let* ((filename (buffer-file-name))
+ (relative-filename
+ (git-auto-commit-relative-file-name filename)))
+ (shell-command
+ (concat "git add " filename
+ " && git commit -m '" relative-filename "'"))))
(define-minor-mode git-auto-commit-mode
"Automatically commit any changes made when saving with this mode