1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#+TITLE: git-auto-commit-mode
#+LINK: src http://code.ryuslash.org/cgit.cgi/emacs/git-auto-commit-mode/
#+LINK: tar_gz http://code.ryuslash.org/cgit.cgi/emacs/git-auto-commit-mode/snapshot/git-auto-commit-mode-master.tar.gz
#+LINK: zip http://code.ryuslash.org/cgit.cgi/emacs/git-auto-commit-mode/snapshot/git-auto-commit-mode-master.zip
#+STARTUP: showall
#+begin_html
<script src="/keyjs.js" type="text/javascript"></script>
<script type="text/javascript">
keyjs_initialize({ "u": [ "keyjs_goto", "../index.html" ],
"h": [ "keyjs_goto", "http://ryuslash.org" ] });
</script>
#+end_html
#+INCLUDE: "dlmenu.inc"
* About
~git-auto-commit-mode~ is a minor mode for GNU Emacs that, when
enabled, tries to commit changes to a file after every save. It can
also try to push to the default upstream.
| Status | On-hold |
| Language | Emacs Lisp |
| Licennse | GPLv3 |
* Features
- Automatically commit changes to a file after each save.
- The commit message will contain the file name relative to the
repository root.
- Optionally, automatically push commits to the default upstream.
* Requirements
- [[http://gnu.org/software/emacs][GNU Emacs]]
- [[http://git-scm.com][git]]
* Download
There are download links for a ~tar.gz~ and a ~zip~ file of the latest
development version at the top of this page.
~git-auto-commit-mode~ is in the [[http://marmalade-repo.org/][Marmalade]] repo.
* Install
Once you have [[Download][downloaded]] ~git-auto-commit-mode~ you have at least 2
choices for installation.
** package.el
If you have Emacs v24+ or [[http://tromey.com/elpa/install.html][package.el]] and Marmalade configured, you
can just:
#+BEGIN_SRC emacs-lisp
(package-install "git-auto-commit-mode")
#+END_SRC
** manual
Otherwise you have to [[Download][dowload]] it and then put it somewhere in your
=load-path=, or add that location to your =load-path=:
#+begin_src emacs-lisp
(add-to-list 'load-path "~/location/of/git-auto-commit-mode")
#+end_src
After which you can either ~require~ the package in your Emacs init
file:
#+BEGIN_SRC emacs-lisp
(require 'git-auto-commit-mode)
#+END_SRC
Or set-up some autoloads:
#+BEGIN_SRC emacs-lisp
(autoload 'git-auto-commit-mode "git-auto-commit-mode" nil t)
#+END_SRC
* Usage
There are a few ways this could be used:
** As file-local variable
This is the way I use it and I wanted to use it. Any file that you
would like to have automatically committed upon saving gets this
prop-line:
#+BEGIN_SRC emacs-lisp
;; -*- eval: (git-auto-commit-mode 1) -*-
#+END_SRC
Or, if you're in anything older than emacs 24:
#+BEGIN_SRC emacs-lisp
;; -*- mode: git-auto-commit -*-
#+END_SRC
** As a directory-local variable
Put the following in a ~.dir-locals.el~ file in any directory where
you want to enable ~git-auto-commit-mode~ for *all* files:
#+BEGIN_SRC emacs-lisp
((nil . ((git-auto-commit-mode . t))))
#+END_SRC
** As a hook
I doubt this will ever really be useful, but it is possible:
#+BEGIN_SRC emacs-lisp
(add-hook 'some-hook 'git-auto-commit-mode)
#+END_SRC
** Automatically push
If you wish to push your changes each time the file is saved you
should set =gac-automatically-push-p= to =t=. This is a buffer local
variable, so you will have to put it in your dir-local or
file-local variables. Alternatively, if you're sure you can also
set the default value to =t=, like so:
#+begin_src emacs-lisp
(setq-default gac-automatically-push-p t)
#+end_src
|