aboutsummaryrefslogtreecommitdiff

git-permalink

pt | fr | eo

Git extension to generate web permalinks of files in a repository.

It knows about many of the existing code forges, but allows for URL template overrides to be used on custom domains or deployments via git config.

Usage

# setup example "remembering" repository
$ git clone https://euandreh.xyz/remembering.git
$ cd remembering/

Now inside the repository folder, running git permalink will try building the web URL of the given file and use xdg-open to launch the browser (or whatever is configured):

$ git permalink tests/ranking.sh
Opening https://euandreh.xyz/remembering.git/tree/tests/ranking.sh?id=44533e2df144e7749a382e298aea53ca11a2239e
$ git permalink tests/ranking.sh 23
Opening https://euandreh.xyz/remembering.git/tree/tests/ranking.sh?id=44533e2df144e7749a382e298aea53ca11a2239e#n23

Or if you just want to output the link without invoking xdg-open, you can use the -p flag:

$ git permalink -p tests/ranking.sh 23
https://euandreh.xyz/remembering.git/tree/tests/ranking.sh?id=44533e2df144e7749a382e298aea53ca11a2239e#n23

Installation

$ make
$ make check
# make install

You can pass PREFIX or DESTDIR to make if you'd like:

$ make         PREFIX=$HOME/.local
$ make check
$ make install PREFIX=$HOME/.local

There are no dependencies or requirements, only standard tools such as POSIX sed, POSIX make, etc.

Documentation

Manuals

The documentation is available via installed manpages or online: - [git-permalink.1] (pt, fr, eo).

Directory structure

The directory structure of the repository is: - aux/: personal scripts and helpers I've vendored in to ensure the repository is self contained, feel free to ignore it; - doc/: manpages, with their translated versions; - po/: gettext .po files for the translated languages and hunspell dictionaries for spell checking; - src/: main source code for the project; - tests/: integration tests for the project.

Contributing

Extra tools used for development are: - ShellCheck for validating scripts; - po4a, mdpo and gettext for i18n and l10n support; - pandoc for generating the documentation HTML and website.

For running the extra development-only checks, run:

$ make dev-check

and for generating the documentation HTML and website, run:

$ make public

Send contributions to the mailing list via git send-email.

Releases

License

The code is licensed under GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).