| Age | Commit message (Collapse) | Author | Lines |
|
Each repository is built tree for tree as before. A helper that lost
the caller's change would still fail t0107, where following no path
shows file-1, but t0108 passed without its added line, so it now looks
for that line.
|
|
The root patch was checked for its signature alone, so one that lost
its diff passed. The headers, the note a path adds to the stat and a
merge in a range had no test, and a renamed file's patch was grepped
rather than compared. The version is read in the test that needs it,
so a missing build/VERSION fails there instead of surfacing later as a
mismatch.
|
|
Only the number of patches was counted, so keeping the oldest two of a
range would have passed. The default of 50 and the 0 that lifts the
bound had no test.
|
|
No test set it, though it switches the patch to a format of cgit's own
and drops the address from the feed and the trailer idents.
|
|
A diff limited to the new name cannot see the old one, so the
diffstat's link for a renamed file, the commit page reached from that
file's log, and the file's rawdiff and patch all showed every line as
added. A path the old tree lacks is now diffed across the whole commit
with rename detection aimed at it alone, the way git blame looks for a
rename, so it is compared with the commit's deleted files and nothing
else. Doing it in cgit_diff_tree keeps the log's counts for that commit
in step with the page they link to.
The rawdiff and patch pages leave the diff to git's own output, so for
them that search finds the old name, and both names go into the limit
with rename detection on.
|
|
|
|
|
|
|
|
The helpers are named by kind. cgitrc_repo and cgitrc_copy write the
config file named first, and cgit_url, cgit_query and cgit_rc run cgit,
each named after what it is handed first. A repository copies its
defaults from the globals read before its repo.url, so cgitrc_repo
places every setting itself, and a global can no longer land where it
silently stops applying. The t00xx and t01xx files move to them here.
|
|
|
|
|
|
The From, Date, Subject and signature lines are part of what the next
test compares in full against git format-patch, for the single commit
and for the range alike.
|
|
enable-version-info brings back the cgit and git versions that 872bd7c
took off the footer and the generator tag, for a site that wants them,
and the version f7d2b83 put on the signature of patches now follows it
too. It stays off by default for the reason 872bd7c gave.
|
|
git format-patch ends each patch with the version of git that wrote it,
and the bare "cgit" that 872bd7c left in its place said less. The
version is written as git writes its own, without the v of the tag, so
a release build signs with "cgit 2.9.0". The footer and the generator
tag still leave versions out.
|
|
The generator meta, the footer and the patch signature named the exact
cgit and git versions on every response, which only helps someone
matching a site against an advisory. The shipped server configs already
hide the server's own version for the same reason, and cgit --version
still answers on the host.
|
|
|
|
|
|
|
|
The numbering walks outward from the ground the suite stands on.
- t000x for the git version, html validity and the cache
- t01xx for page content, one script per page
- t02xx for filters, submodule links, dates and limits, which cut
across pages
- t03xx for defence, the security regressions and the $HOME promise
- t04xx for the helper tools under tools/
|
|
|
|
|
|
Everything the build generates now lands in build/, so a clean is a
single remove and the source tree stays free of build output.
|
|
Using (DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_PATCH) causes Git to emit a
"---" line between the commit message and the body of the patch, which
fixes a regression introduced in commit 455b598 (ui-patch.c: Use
log_tree_commit() to generate diffs, 2013-08-20), prior to which we
inserted the "---" line ourselves.
DIFF_FORMAT_SUMMARY is added so that we match the output of
git-format-patch(1) without the "-p" option.
Signed-off-by: John Keeping <john@keeping.me.uk>
|
|
* &&-chaining
* use test_cmp instead of cmp
* use strip_headers instead of knowing how many lines there will be
Signed-off-by: John Keeping <john@keeping.me.uk>
|
|
Add tests to check whether generating multiple patches at once works.
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
|
|
For consistency with git-format-patch(1).
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
|
|
Use `git rev-list --max-parents=0 HEAD` instead of `git rev-list HEAD |
tail -1` to get the root commit. This works since Git 1.7.4.2.
Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
|
|
This allows tests to run in parallel as well as letting us use "prove"
or another TAP harness to run the tests.
Git's test framework requires Git to be fully built before letting any
tests run, so add a new target to the top-level Makefile which builds
all of Git instead of just libgit.a and make the "test" target depend on
that.
Signed-off-by: John Keeping <john@keeping.me.uk>
|
|
Signed-off-by: John Keeping <john@keeping.me.uk>
|
|
The "-e" option to grep is not needed unless specifying more than one
pattern, which we don't do. Remove it to avoid restricting the tests on
platforms that do not have a grep that recognises "-e".
Signed-off-by: John Keeping <john@keeping.me.uk>
|
|
v2: incorporate remarks of Lukas
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
|
|
Signed-off-by: Mark Lodato <lodatom@gmail.com>
|
|
The code for patch view assumed the current commit would always have a parent,
which made cgit segfault when that wasn't the case.
This fixes the bug and adds a test-script for patch view which includes a test
for the inital commit.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
|