TexStudio is our favorite TeX editor. It works with only SVN version system. Nevertheless, using macroses one can teach it to work with Git also. To do it, one needs to create three new scripts Macros -> Add/Change in the file menu.
Get from server
%SCRIPT
buildManager.runCommand("git pull ", editor.fileName())
Commit
%SCRIPT
dialog = new UniversalInputDialog()
dialog.setWindowTitle("Git commit / push")
dialog.add("Commited by Olek P", "Comment", "comment")
if (dialog.exec() != null) {
comment = dialog.get("comment")
buildManager.runCommand("git commit -a -m \"" + comment + "\"", editor.fileName())
}
Upload to server
%SCRIPT
buildManager.runCommand("git push origin master", editor.fileName())
Windows users must change path to git. For example the last script should look like following:
%SCRIPT
buildManager.runCommand("\"C:\\Program Files\\Git\\bin\\git.exe\" push origin master", editor.fileName())
UPD 21/12/2017
Show git log
%SCRIPT
buildManager.runCommand("showlog.sh", editor.fileName())
Here script showlog.sh is the following:
#!/bin/bash
FNAME='log.log' # temporary file
TEXTED='kwrite' # default text editor
git log --pretty=format:'%h : %s | Time: %cd' --graph > ${FNAME} && ${TEXTED} ${FNAME}
Compare two commits:
%SCRIPT
dialog = new UniversalInputDialog()
dialog.setWindowTitle("Choose commit:")
dialog.add("HEAD", "Recent version", "commit1")
dialog.add("HEAD^", "Elder version", "commit2")
if (dialog.exec() != null) {
commit1 = dialog.get("commit1")
commit2 = dialog.get("commit2")
buildManager.runCommand("git difftool " + commit1 + " " + commit2 + " --no-prompt ", editor.fileName())
}
many thanks