you are reading VERSION = v0.0.14-develop
gitonic simplifies working with multiple git repositories.
gitonic comes with an easy to use Tkinter GUI.
there is also a plugin for thonny
thonny-gitonic
where software components/ artefacts are stored in multiple repositories separately gitonic helps to keep track
Check
CHANGELOG
for latest ongoing, or upcoming news.
Check
BACKLOG
for open development tasks and limitations.
IMPORTANT:
gitonic
interacts with git
just like starting in bash / commandline.
at the present time there is no additional error checking.
this must be done by checking the log tab manually where all cmdline output goes.
an introduction on how git works in general can be found in the official git documentation in section
Git-Basics
.
another very good book
progit2
can be downloaded from the official github project page.
under releases
are different formats such as pdf, epub ...
todo - documentation pending
when adding a git repo to the tracked list, and staging files (from different repositories) a following commit command is executed on all repositories in the tracked list with the same commit message. this is not a bug; moreover it is intened to be like that.
following list contains all hotkeys:
key | action |
---|---|
Esc | minimize the app window |
Esc Esc | press quickly Esc twice to close the app |
Control-p | pull all tracked gits |
Control-Shift-p | fetch all tracked gits |
F1 | refresh all in changed files view |
F2 | select all in changed files view |
F3 | un-select all in changed files view |
F5 | select previous tab |
F6 | select next tab |
Alt-a | stage file(s) in git |
Alt-q | un-stage file(s) in git |
Alt-w | diff file(s) |
Alt-d | difftool file(s) |
Alt-f | auto format file(s) with black PEP08 |
Alt-c | go to commit tab and clear commit message field(s) |
Alt-x | commit file(s) |
Alt-s | push git(s) |
Alt-e | commit and push git(s), like pressing Alt-x and Alt-s |
HINT:
if not responding to a hotkey, make sure that CapsLock is disabled
the file status is the same as when calling
git status --porcelain
.
see also under git status output
.
status | comment |
---|---|
M | modified |
A | added |
D | deleted |
R | renamed |
C | copied |
U | updated but unmerged |
?? | not in git. untracked |
NOTE:
gitonic
use porcelain format version 1.
it is possible to configure external formatter tools depending on the file extension.
gitonic
will use the configuration file ~/.gitonic/formatter.json
.
the general structure is:
{
".file-ext": {
"cmd": "full-path-to-command",
"para": [
"%file"
]
}
}
here para
is an array of cmd-line options passed to the formatter command
where %file
is a placeholder and replaced by the file name
for different file extensions gitonic
will call the formatter accordingly
even if the selected files are of different types (extensions)
all of the following tools are part of gitonic
standard installation
(available as extra, see below under installation).
choose the one what fits best for your needs.
autopep8 is a python formatter what fixes problems reported by pycodestyle. pycodestyle is an official tool from python's code quality authority.
{
".py": {
"cmd": "autopep8",
"para": [
"-i",
"%file"
]
}
}
black is also an offical python tool, but resolves not fully to issues reported by pycodestyle. there might be some rework required (from case to case). result is quite similar to autopep8 beside the list reported by pycodestyle (after formatting) is a bit longer comparing to autopep8 what does a better job here.
{
".py": {
"cmd": "black",
"para": [
"%file"
]
}
}
yapf (google python code formmater) is slow comparing the former tools, and re-arranges code so that it is reported as error by pycodestyle after formatting.
{
".py": {
"cmd": "yapf",
"para": [
"-i",
"%file"
]
}
}
tested on python3, and linux
alpha state, use on your own risk!!!
it is recommented to install gitonic into a virtual environment. the following script will install gitonic in your home directory (linux).
# create virtual environment
cd ~
python3 -m venv gitonic
# install gitonic with recommended extras
~/gitonic/bin/pip install gitonic[PEP08,MELD]
or
~/gitonic/bin/pip install gitonic[DEFAULT]
this script can be found here
install_linux.sh
to install just gitonic
without the extras replace with
# install gitonic
~/gitonic/bin/pip install gitonic
to run gitonic use the script from the virtual environment directly (no prior venv activation required)
~/gitonic/bin/gitonic
it is recommented to create an alias in .bash_aliases
.
add the following line at the end of .bash_aliases
alias gitonic=~/gitonic/bin/gitonic
to use git difftool, and mergetool, download and install a 3rd party tool like
meld merge
and configure like described below.
note:
with gitonic >= v0.12.0 meld is already included in standard installation (as extra, see also under installation) and download is obsolete when installed as part of gitonic. you just need to configure git then.
in case meld installation fails install into the virtual environment
cd ~
~/gitonic/bin/pip install PyGObject
options can be combined by |
.
use
~/gitonic/bin/pip install gitonic[*options*]
option | included packages |
---|---|
PEP08 | pycodestyle, flake8, autopep8 |
PEP08_BLACK | pycodestyle, flake8, black |
PEP08_FULL | pycodestyle, flake8, autopep8, black, yapf |
MELD | meld |
DEFAULT | pycodestyle, flake8, autopep8, meld |
when during startup an error is thrown, refer to installation on raspberry, fedorra
add a .git-credentials
file as described here
git-credentials
add a .gitconfig
file as described here
git-config
and configure for diff and merge tools.
NOTE: you need to install the diff-tool e.g.
meld merge
manually,
if meld is not installed pressing the button will have no effect.
[user]
name = your name
email = you@email.tld
[credential]
helper = store
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
[merge]
tool = meld
[mergetool "meld"]
# Choose one of these 2 lines (not both!)
# cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
the following tools are part of the standard git distribution
other gui-clients are listed on git-scm
following files are used:
file | description |
---|---|
~/.gitonic/commit.json | the last commit messages show in the combo box |
~/.gitonic/tracked.json | tracked git repositories |
~/.gitonic/config.json | configuration settings |
~/.gitonic/formatter.json | configuration for external formatter tools |
~/.gitonic/socket | internal use |
HINT:
crash after configuration change can be resolved by changing the setting manually
in config.json
, or delete the config file to fall back to the defaults
gitonic is released under the following
LICENSE