summaryrefslogtreecommitdiff
path: root/stagit.c
AgeCommit message (Collapse)Author
2022-05-24Allow git to run on an other user repositoryAnton Lindqvist
Reported by Anton: "Recent versions of libgit2 broke stagit for me due to the added opt-out GIT_OPT_SET_OWNER_VALIDATION configuration knob. My repositories are owned by root:vcs and I run stagit as another user which happens to be in vcs group but not the owner of the repository. Disabling the validation makes stagit work as expected again." Some notes: When using regular git it also provides a knob. This is due to a security concern in some cases, which is not applicable to stagit. git log somerepo fatal: unsafe repository ('somerepo' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory somerepo See also / related: - https://github.blog/2022-04-12-git-security-vulnerability-announced/
2022-03-19improve stream read and write error handlingHiltjo Posthuma
2022-01-03libgit2 config opts: set the search to an empty pathHiltjo Posthuma
Otherwise this would search outside the unveiled paths and cause an unveil violation. Reported by Anton Lindqvist, thanks!
2021-12-14do not percent-encode: ',' or '-' or '.' it looks uglyHiltjo Posthuma
2021-11-16Print the number of remaining commitsQuentin Rameau
2021-11-16ignore '\r' in writing the blob aswellHiltjo Posthuma
Follow-up on commit 295e4b8cb95114bb74b582c7332bc4c171f36dd3 which changed it for diffs.
2021-11-16percent encode characters in path namesHiltjo Posthuma
Paths could contain characters like # (fragment), '?', control-characters, etc.
2021-11-16encode the name, it could contain XML entitiesHiltjo Posthuma
Like ", which would unquote the attribute value. Crazy but true.
2021-05-05do not simplify the history by first-parentHiltjo Posthuma
Reference: https://libgit2.org/libgit2/#HEAD/group/revwalk/git_revwalk_simplify_first_parent Noticed on merge commits on: https://git.simple-cc.org/scc/ Reported by quinq, thanks!
2021-03-25tiny comment changeHiltjo Posthuma
2021-03-25add function to print a single line, ignoring \r and \nHiltjo Posthuma
This can happen when there is no newline at end of file in the diff which is served by libgit2 as: "\n\ No newline at end of file\n".
2021-03-05change STAGIT_BASEURL to an -u option and also update the example scriptHiltjo Posthuma
2021-03-05add $STAGIT_BASEURL environment variable to make Atom links absoluteHiltjo Posthuma
With feedback from adc, thanks!
2021-01-09micro-optimization: fputc (function) -> putc (macro/inline function)Hiltjo Posthuma
2020-11-28fix warning with libgit2 v0.99+, remain compatible with older versionsHiltjo Posthuma
git_blob_rawsize now returns with git_object_size_t (unsigned). This was git_off_t (signed). In my current version 1.1.0: types.h:typedef uint64_t git_object_size_t; v0.28.5: https://libgit2.org/libgit2/#v0.28.5/group/blob/git_blob_rawsize changed from v0.99 onwards: https://libgit2.org/libgit2/#v0.99.0/group/blob/git_blob_rawsize Fix: use size_t to remain compatible (with a possible warning in older versions), since git_object_size_t is a new defined type. This assumes size_t is atleast uint32_t / uint64_t size. Adapted from a patch by Augustin Fabre <augustin@augfab.fr>, thanks!
2020-11-23add abbreviated commit hash to submodule fileOscar Benedito
2020-11-15add meta viewport for scaling on mobileHiltjo Posthuma
Patch by Augustin Fabre <augustin@augfab.fr>
2020-11-15use size_t to count linesHiltjo Posthuma
2020-11-15avoid shadowed `name' global variableHiltjo Posthuma
by Augustin Fabre <augustin@augfab.fr>
2020-11-15refs_cmp: remove unneeded castHiltjo Posthuma
2020-11-15use LEN() macros for arraysHiltjo Posthuma
from Augustin Fabre <augustin@augfab.fr>
2020-08-10fix a small memleak in writeatom()Hiltjo Posthuma
non-tag references were not freed.
2020-08-06fix submodule lookup in bare reposkst
git_submodule_lookup does not work without a working tree [1], so the current approach fails to recognize any submodules in bare repos. Instead, notice that $ git ls-tree HEAD lists any submodules as commit objects regardless of a working tree. This is the only instance commit object is used in a tree, so we will use this to check for submodules. [1]: https://github.com/libgit2/libgit2/pull/4305/files
2020-07-20regression: do not show unset or empty tagsHiltjo Posthuma
2020-07-19refactor get reference, add another feed for tags/releasesHiltjo Posthuma
A separate Atom feed is helpful to ports maintainers to monitor new tags/releases.
2020-07-19sort branches and tags by time (descending)Hiltjo Posthuma
In general version tags are done in chronological order, so this will have a better sorting for tagged (versioned) releases. Request from Caltlgin Stsodaat and others, thanks!
2020-02-21atom.xml: improve output format a bitHiltjo Posthuma
2020-02-12improve includes, stagit-index does not need compat.hHiltjo Posthuma
2019-12-01add OpenBSD unveil supportHiltjo Posthuma
The unveil() system call first appeared in OpenBSD 6.4. For stagit it has the following properties now: - stagit-index: only read-access to the file-system for the specified directories/repositories. - stagit: read-access to the specified directory/repository. read-write and creation access to the current directory for the output files. read-write and creation access to the specified cache file.
2019-03-16escape HTML in pathsHiltjo Posthuma
- escape paths in diff line. - escape path in anchor href attribute in files.html
2019-03-09pedantic snprintf() improvementHiltjo Posthuma
POSIX says: "If an output error was encountered, these functions shall return a negative value and set errno to indicate the error."
2019-02-16change order of commits in log from most recent to old to applied orderHiltjo Posthuma
2019-02-16fix compile: libgit2 0.28 changed giterr_last to git_error_lastHiltjo Posthuma
libgit2 commit: https://github.com/libgit2/libgit2/commit/a27a4de6f8003961d38958893c6c637395c7cc04
2018-11-18in the diffstat prefix the type of change, allow CSS stylingHiltjo Posthuma
2018-11-18don't use a heuristic for renames, the content must match exactlyHiltjo Posthuma
this prevents showing files as renames when most (but not all) of the file was changed.
2018-11-18detect filetype changes in diff (for example a normal file to symlink)Hiltjo Posthuma
2018-11-11detect more names for README and LICENSEHiltjo Posthuma
- for license: LICENSE, LICENSE.md, COPYING. - for readme: README, README.md.
2018-11-11detect copies and renames based on the threshold of changesHiltjo Posthuma
2018-08-22simplify range checkHiltjo Posthuma
2018-08-22stagit: log: indicate when using the -l option and there are more commitsHiltjo Posthuma
2018-05-25assume OpenBSD 5.9+, always try pledge(2) on OpenBSDHiltjo Posthuma
2018-05-09Clarify usage regarding -c and -l mutual exclusionQuentin Rameau
2018-03-26pledge after git_libgit2_initHiltjo Posthuma
this is because libgit uses curl which uses some initialization checks, namely an IPv6 check which creates a socket.
2018-03-18optimization: only diff the tree when it is needed for the diffstat...Hiltjo Posthuma
... also clear all fields in the structure on failure. This is not as big an optimization as stagit-gopher, because the diffstat is displayed in the log, but the difference is still measurable.
2018-01-21stagit: add -l option: limit the amount of commits for the log.html fileHiltjo Posthuma
2017-11-19fix: add "fattr" pledge for chmod(2) for cachefileHiltjo Posthuma
improve checks for when head is NULL (empty repo)
2017-11-10fix file permissions for cachefile and respect umask(2)Hiltjo Posthuma
2017-11-10more verbose errors: show which file failed on openHiltjo Posthuma
2017-09-04allow umask to handle permissionsHiltjo Posthuma
2017-06-23separate getstats from getbyoid: slightly fasterHiltjo Posthuma