Skip to content

Commit

Permalink
fix: git add unstaged files before committing
Browse files Browse the repository at this point in the history
  • Loading branch information
gyk authored and tiensonqin committed Dec 21, 2020
1 parent 84dd5eb commit a1ff34f
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 4 deletions.
6 changes: 5 additions & 1 deletion resources/js/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,11 @@ if (detect() === 'Worker') {
})
},
statusMatrix: async function (dir) {
await git.statusMatrix({ fs, dir });
return git.statusMatrix({ fs, dir });
},
statusMatrixChanged: async function (dir) {
return (await git.statusMatrix({ fs, dir }))
.filter(([_, head, workDir, stage]) => !(head == 1 && workDir == 1 && stage == 1));
},
getChangedFiles: async function (dir) {
try {
Expand Down
25 changes: 25 additions & 0 deletions src/main/frontend/git.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,31 @@
email
parent))))

(defn add-all
"Equivalent to `git add --all`. Returns changed files."
[repo-url]
(p/let [repo-dir (util/get-repo-dir repo-url)
status-matrix (js/window.workerThread.statusMatrixChanged repo-dir)
changed-files (for [[file head work-dir _stage] status-matrix
:when (not= head work-dir)]
file)
unstaged-files (for [[file _head work-dir stage] status-matrix
:when (not= work-dir stage)]
file)
_ (p/all (for [file unstaged-files]
(add repo-url file)))]
changed-files))

(defn commit-non-empty
"Equivalent to `git add --all` and then `git commit` without `--allow-empty`."
([repo-url message]
(commit-non-empty repo-url message nil))
([repo-url message parent]
(p/let [changed-files (add-all repo-url)]
(if (not-empty changed-files)
(commit repo-url message parent)
(p/resolved nil)))))

(defn read-commit
[repo-url oid]
(js/window.workerThread.readCommit (util/get-repo-dir repo-url)
Expand Down
6 changes: 3 additions & 3 deletions src/main/frontend/handler/repo.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@
file-exists? (fs/create-if-not-exists repo-url repo-dir file-path content)]
(when-not file-exists?
(file-handler/reset-file! repo-url path content)
(ui-handler/re-render-root!))
(git-handler/git-add repo-url path))))))
(ui-handler/re-render-root!)
(git-handler/git-add repo-url path)))))))

(defn create-today-journal!
[]
Expand Down Expand Up @@ -427,7 +427,7 @@
(state/input-idle? repo-url)
(or (not= status :pushing)
custom-commit?))
(-> (p/let [files (js/window.workerThread.getChangedFiles (util/get-repo-dir (state/get-current-repo)))]
(-> (p/let [files (git/add-all (state/get-current-repo))]
(when (or (seq files) merge-push-no-diff?)
;; auto commit if there are any un-committed changes
(let [commit-message (if (string/blank? commit-message)
Expand Down

0 comments on commit a1ff34f

Please sign in to comment.