Adam Mercer <ramercer@xxxxxxxxx> writes: > As part of a python script I need to determine if a tree has any > uncommitted changes, so far I am been using: > > # determine tree status > status_cmd = 'git status' > status_output = run_external_command(status_cmd, > honour_ret_code=False)[1].strip() > if status_output.endswith('no changes added to commit (use "git add" > and/or "git commit -a")'): > git_status = 'UNCLEAN: Some modifications not committed' > else: > git_status = 'CLEAN: All modifications committed' > > but I feel that this relies to heavily on the porcelain and that there > should be a better way to accomplish this without relying on parsing > the output of git-status. > > Does anyone know of a better way to accomplish this? Use plumbing commands. "git diff-files" will show changes you have in the work tree compared to the index. "git diff-index HEAD" will show changes you have in the work tree compared to the HEAD. "git diff-index --cached HEAD" will show changes you have in the index compared to the HEAD. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html