aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add user manual to siteGravatar Tom Willemse2013-05-272-2/+15
|
* Add clean make targetGravatar Tom Willemse2013-05-275-5/+26
|
* Add user manualGravatar Tom Willemse2013-05-278-7/+928
|
* Add Makefile for zsh/Gravatar Tom Willemse2013-05-262-1/+12
| | | | | Installs the ZSH completion module into `DESTDIR/shar/zsh/site-functions/_gitto'.
* Add zsh command completion functionGravatar Benjamin Althues2013-05-261-0/+73
| | | | | Add completion for gitto (sub)commands and arguments for users of the Z shell.
* Update README and other files, add site/Gravatar Tom Willemse2013-05-268-51/+216
|
* Allow multiple values for config settingsGravatar Tom Willemse2013-05-251-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting a list as a value for `global-config' will instruct gitto to place that setting in the config more than once. For example: ,---- | (set! global-config | '(("remote \"origin\"" | ("url" . "git@somehost.com:~a.git") | ("pushurl" "git@somehost.com:~a.git" | "git@someotherhost.com:user/~a.git")))) `---- Will produce output similar to: ,---- | [remote "origin"] | url = git@somehost.com:repo-name.git | pushurl = git@somehost.com:repo-name.git | pushurl = git@someotherhost.com:user/repo-name.git `---- The ordering may vary depending on what was already found in the `origin' remote's settings. gitto doesn't know or care which settings can and cannot appear more than once in a configuration, it is up to the user to provide valid values.
* Add simple hook managementGravatar Tom Willemse2013-05-252-1/+19
| | | | | | | | | | | | | Introduces a new user configuration variable `hook-alist', which specifies which hooks to link to which executables, for example: ,---- | (set! hook-alist '(("commit-msg" . "/path/to/my/commit/msg/hook"))) `---- With this setting the command `config hooks' will install `/path/to/my/commit/msg/hook' to the `commit-msg' hook of each repository not in the `config-exclusion-list' setting.
* Ask to merge settings when registering repoGravatar Tom Willemse2013-05-233-12/+60
| | | | | | | | | | The `add' command will ask the user if they would like to merge their settings with the newly registered repository's if the current input is a tty and if the user has specified some settings. The default for this is `#t', so pressing <RET> when presented with this question will merge the settings, however if the user is never asked (because the input is not a tty) no merge will happen.
* Add DESTDIR as prefix to extension destinationGravatar Tom Willemse2013-05-231-3/+4
| | | | | | | The `pkg-config' program needs to know about the prefix DESTDIR to determine where the files in `src/' should be installed. If this option is not passed along to `pkg-config' it will always try to install in `/usr/'.
* Update help messageGravatar Tom Willemse2013-05-211-7/+13
|
* Change nameGravatar Tom Willemse2013-05-207-9/+9
|
* Add simplistic command structureGravatar Tom Willemse2013-05-201-46/+38
| | | | | | | | | | | | | | | | | | | Now instead of using `gitto --register' or `gitto -r' one would use `gitto add'. Here is the list of what was and what is: --version, -v => version --help, -h => help --register, -r => add --remove, -R => remove --repositories, -l => list locations --purge, -p => purge --check, -c => check --config, -C => config --global-config => config global --update-config => config update Running gitto without arguments keeps the same functionality, though it can also be called as `gitto list'.
* Remove docstring from config-exclusion-listGravatar Tom Willemse2013-05-201-2/+1
| | | | | Apparently that is not the right place for a docstring, I must have been thinking about emacs lisp.
* Add exclusion listGravatar Tom Willemse2013-05-191-5/+9
| | | | | | | | | The variable `config-exclusion-list' can be used to specify project names that should not have their configuration overwritten by `gitto --update-config'. It is a normal list of strings which name the repositories that should be left alone, like so: (set! config-exclusion-list '("repo1" "repo2" "repo3"))
* Add config management commandsGravatar Tom Willemse2013-05-173-8/+126
| | | | | These commands parse the git configuration file and, merge settings defined in the rc.scm and print out the resulting configuration.
* Split git function into separate moduleGravatar Tom Willemse2013-05-123-124/+167
|
* Fix some bugsGravatar Tom Willemse2013-05-121-2/+5
| | | | | | | | | - The `register-repository' procedure was using a non-existent procedure `repository-name', this should be `repo-name'. - The `purge' procedure was working on a collection of `<repository>' objects, but assuming they were file names, the `repo-location' should first be extracted before calling `file-exists?'.
* Fix error when XDG_*_HOME is specifiedGravatar Tom Willemse2013-05-101-1/+1
| | | | | | | Unlike some other lisps scheme's `unless' returns `#<unspecified>' instead of nil, and `string-append' doesn't accept this as a valid argument. So use an empty string if XDG_*_HOME has been specified and FALLBACK otherwise.
* Show status per branchGravatar Tom Willemse2013-05-051-22/+55
| | | | | | | Instead of looking at the current HEAD, look at each branch separately. This also means that if you customize the `print' method in your init file you should also go over all the branches. You can now also customize the `print' method for the `<branch>' type.
* Turn format function into a generic methodGravatar Tom Willemse2013-05-051-22/+15
| | | | | | | | | | | | | | | This changes the way formatting functions can be customized in the init file to: ,---- | (define-method (print (repo <repository>)) | (format #t "~a: ~d up; ~d down; ~a. Updated ~a~%" | (repo-name repo) (repo-pushable repo) (repo-pullable repo) | (if (repo-clean? repo) "clean" "dirty") (repo-updated repo))) `---- Note that it is possible that REPO doesn't exist, so you should always check for that first.
* Use lazy evaluation to speed-up startupGravatar Tom Willemse2013-05-051-27/+36
| | | | | | Before using goops the relevant information was gathered when it was needed, but now with goops everything is gathered at startup. So use lazy evaluation to defer that gathering until it is needed.
* Use goops to encapsulate repositoriesGravatar Tom Willemse2013-05-051-25/+61
|
* Separate repository line formatting into format-repositoryGravatar Tom Willemse2013-05-051-4/+7
| | | | | | | | | | | | | | | | | | | | | This way people can override this function in their RC files, and specify what information they would like to see where. They would do this with, for example: ,---- | (set! format-repository | (lambda (name pushable pullable clean? updated) | (format #t "~a: ~d up; ~d down; ~a. Updated ~a\n" | name pushable pullable (if clean? "clean" "dirty") | updated))) `---- To turn each line into the like of: ,---- | gitto: 1 up; 0 down; dirty. Updated 4 months ago `----
* Load an initialization file at startupGravatar Tom Willemse2013-05-051-19/+31
| | | | | This file is located either in XDG_CONFIG_HOME or, in case XDG_CONFIG_HOME is empty, in HOME/.config/gitto.
* Try : instead of #+BEGIN_EXAMPLEGravatar Tom Willemsen2013-01-201-29/+13
| | | | It might be parsed better by some parsers, let's see.
* Replace README.markdown with README.orgGravatar Tom Willemsen2013-01-203-74/+88
| | | | And add .0 to version
* Add -p option to help and fix typoGravatar Tom Willemsen2013-01-201-1/+2
| | | | | The `-p' option was already implemented, but it wasn't yet explained in the help output.
* Bump versionGravatar Tom Willemsen2012-10-171-1/+1
|
* Checkdoc-suggested changesGravatar Tom Willemsen2012-10-171-4/+4
|
* Add unregister command to emacs interfaceGravatar Tom Willemsen2012-10-171-0/+17
| | | | | | * emacs/gitto.el (gitto-registered-p): New function. (gitto-unregister): New command (gitto-register): Add docstring.
* Doc updateGravatar Tom Willemsen2012-10-171-0/+5
|
* Tiny style cleanupGravatar Tom Willemsen2012-10-171-1/+2
|
* Add check commandGravatar Tom Willemsen2012-10-171-2/+9
| | | | Checks to see if the specified directory has been registered.
* Add emacs interfaceGravatar Tom Willemsen2012-10-161-0/+46
| | | | Only has a `gitto-register' function for now. Just a start.
* Use ? for bool valuesGravatar Tom Willemsen2012-09-261-13/+13
|
* Add --purgeGravatar Tom Willemsen2012-09-261-2/+10
| | | | | `--purge' deletes all the repositories from gitto that don't exist on the filesystem (anymore).
* If PATH_MAX is defined, use itGravatar Tom Willemsen2012-09-181-1/+7
|
* Check if we know the argument to -RGravatar Tom Willemsen2012-09-181-3/+8
| | | | If we don't, fail in getopt-long.
* Don't fail with no-longer existing reposGravatar Tom Willemsen2012-09-181-2/+4
| | | | | | | When a repo is in the repositories list, but not where it should be, don't care, if we know it, delete it. Don't require the argument for delete to exist on the filesystem.
* Return #f when no path is foundGravatar Tom Willemsen2012-09-181-1/+4
| | | | Return `SCM_BOOL_F' when `realpath' can't find the path.
* Don't fail when a repository can't be foundGravatar Tom Willemsen2012-09-181-8/+12
| | | | Report it instead.
* Use guile-snarfGravatar Tom Willemsen2012-08-013-6/+12
| | | | | | | | Because it looks cooler. This way its easy to keep all the information about the function in one place, and it makes it easier/more interesting to add new functions later.
* Add GPL commentsGravatar Tom Willemsen2012-07-312-0/+37
|
* Add relative directory parsingGravatar Tom Willemsen2012-07-316-8/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of now, when using `-r' or `-R', relative directories can be used. This *does not* include locations starting with `~', those still need to be handled by your shell. Because every repo is treated as a possible relative path, and thus passed on to `realpath', the paths have become very uniform. This means that it will now only register and unregister paths that don't have a trailing `/'. This is not true during usage, so those paths still work, but they can't be removed by gitto, and adding them again will create a duplicate entry. * gitto/Makefile (objects): Add `path.scm' and `path.go'. (.PHONY): Add `all' as a phony target. (all): New target, compiles all `.go' targets. ($(filter %.go,$(objects))): Use `env' to run guild so that include paths are setup properly. * gitto/main.scm (gitto): Use new `(gitto path)' module, it contains the `realpath' function. (register-repository): (remove-repository): Always pass REPOSITORY through `realpath' and use the result. * gitto/path.scm: New file. Loads the `libguile-gitto-path' extension and exports its `realpath' function. * src/Makefile (CFLAGS): (LDFLAGS): Use `pkg-config' to gather the necessary values for guile. (libguile-gitto-path.so): New guile extension, wraps the `readline' POSIX function. * src/gitto-path.c: New file, wraps and exports the `realpath' POSIX function from `stdlib.h'.
* Fix unterminated variable referenceGravatar Tom Willemsen2012-07-311-1/+1
|
* Seperate settings to envGravatar Tom Willemsen2012-07-312-3/+8
| | | | | | | | | | Set environment settings in `env' and have `run-gitto' use it, this makes it easy for other commands (like make) to utilize this as well. * env: New file, set environment variables needed to do anything with gitto outside of an installed state. * run-gitto: Move environment settings to `env' and just run it.
* Update/add docstringsGravatar Tom Willemsen2012-07-081-2/+12
|
* Use guild, not guile toolsGravatar Tom Willemsen2012-07-041-1/+1
| | | | | `guile-tools' only still exists for compatibility with guile-1.8, but it has been renamed to `guild'.
* Compile main.go before installingGravatar Tom Willemsen2012-07-041-1/+1
|