| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | m | EuAndreh | 2025-01-06 | 1 | -8/+8 |
| | | |||||
| * | m | EuAndreh | 2025-01-06 | 1 | -2/+19 |
| | | |||||
| * | Cleanup repo, reinit in sh | EuAndreh | 2023-04-14 | 1 | -41/+3 |
| | | |||||
| * | src/gistatic.in: Initial sh version | EuAndreh | 2021-09-08 | 1 | -2/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got a bit frustrated that libgit2 didn't offer an API or "git archive" commands. I started implementing generating tarballs from scratch in src/tar.c and I'm quite liking it: the specification is very small, and the code can be very simple, since all I'm doing is writing fresh tarballs, and not reading or updating them. However I felt a bit locked-in to libgit2 itself, and what a detour from my original goal that is, and the question "what should libgit2 provide" came up to my mind. This made me realize that libgit2 is playing catch-up with Git itself, for as long as Git doesn't explicit has an explicit API, a standard, a public version of its internal libgit.a, or something like that. In fact, I'm locked in to Git, even. So even though a C version would probably be much faster, it wouldn't really have less dependencies, and that's what I'm actually optimising for: having the software be as portable as possible. On that front, C is unbeatable with sh as a close second. But the extreme portability of C aren't being fully exploited here: libgit2 does depend on non-POSIX things like CMake (and quick grep even shows references to -D_GNU_SOURCE!!), and Git's Makefile itself isn't POSIX at all. The point is: by depending on either Git or libgit2, I'm already loosing many selling points of writing the software in C, and sh becomes much more attractive. Had existed a common DVCS interface that could make me decouple gistatic from Git somehow I would insist a bit more in C, but now I'm switching to sh. The fact that I was able to get further with sh in one sitting than I did with C shows that a) I'm a bit less fluent in C than I would like (at least for now ^^) and b) that it is actually much simpler to do. I am quite satisfied with the quality of C code that I got so far. The error handling and propagation is pretty robust, and the implementation is very disciplined. I did most of the development with Valgrind, and other sanitizers would help even further, with some fuzzers on top. | ||||
| * | Makefile: Indent target dependencies | EuAndreh | 2021-09-07 | 1 | -3/+3 |
| | | |||||
| * | Makefile: Generate src/config.h from src/config.h.in | EuAndreh | 2021-09-05 | 1 | -14/+7 |
| | | |||||
| * | Makefile: Add better .c.o inference rule | EuAndreh | 2021-09-02 | 1 | -0/+3 |
| | | |||||
| * | Makefile: Make objects no depend on headers but on other objects | EuAndreh | 2021-08-31 | 1 | -6/+6 |
| | | |||||
| * | Makefile: Change order of built artifact to reflect actual build order | EuAndreh | 2021-08-31 | 1 | -1/+3 |
| | | |||||
| * | Makefile: Use libgistatic.a to build gistatic instead of the underlying objects | EuAndreh | 2021-08-28 | 1 | -3/+3 |
| | | | | | | | | | | This way I can make sure at least that all the objects that are required to exist on the library file are being included. However, this has no influence on what should and shouldn't be exposed in src/gistatic.h, and which functions ought to be public. This verification will remain unimplemented, at least for now. | ||||
| * | Makefile: Run integration (expensive) tests after unit and linter tests | EuAndreh | 2021-08-28 | 1 | -1/+1 |
| | | |||||
| * | Makefile: Use macros over globs on "clean" target | EuAndreh | 2021-08-28 | 1 | -1/+1 |
| | | |||||
| * | Makefile: Remove bin, lib and include artifacts in "uninstall" target | EuAndreh | 2021-08-28 | 1 | -0/+4 |
| | | |||||
| * | Makefile: Be more explicit about empty lines on the generated src/config.h | EuAndreh | 2021-08-28 | 1 | -1/+2 |
| | | |||||
| * | Makefile: Move libgistatic.a to the beginning, following the natural ↵ | EuAndreh | 2021-08-28 | 1 | -3/+3 |
| | | | | | progression of artifacts | ||||
| * | Makefile: Remove duplicate usage of $(CFLAGS), $(LDFLAGS) and $(LDLIBS) | EuAndreh | 2021-08-28 | 1 | -3/+3 |
| | | |||||
| * | aux/workflow/dist.sh: Be stricter with release pre-requisites | EuAndreh | 2021-08-28 | 1 | -2/+3 |
| | | |||||
| * | Makefile: Add single quote around paths and names | EuAndreh | 2021-08-24 | 1 | -16/+16 |
| | | |||||
| * | public/makefile.svg: Start generating it with makefile2graph and graphviz | EuAndreh | 2021-08-23 | 1 | -1/+5 |
| | | |||||
| * | src/: Move logerr* functions to src/logerr.{c,h}; forward tarballs_fd to ↵ | EuAndreh | 2021-08-23 | 1 | -8/+13 |
| | | | | | src/tar.c | ||||
| * | Rename src/gistatic.* src/lib.* | EuAndreh | 2021-08-22 | 1 | -7/+7 |
| | | |||||
| * | Have a single top-level main for running unit-tests | EuAndreh | 2021-08-22 | 1 | -27/+37 |
| | | | | | | | | | | | | | | | | | | | | Instead of each .c file becoming a self-standing .t executable file, and being run for executing the unit tests local to the file, now each .c becomes a .to object (akin to a .o object, but one where the -DTEST flag is given to the compiler). After that, all the .to objects are linked together in a gistatic-tests executable, in a equivalent way that all .o files get linked together in a gistatic executable. This change was necessary in order to allow dependencies between objects. The next task will be making a tar of a repository tree checkout, and src/gistatic.{o,to} will start depending on src/tar.{o,to}. If each file has its own main function when -DTEST is given, then I wont be able to link them together. I took the opportunity that I had to change the Makefile, and I improved the dependency between targets and dependencies greatly. From what I can tell now, it is correct. | ||||
| * | Makefile: Run assert-catgets.sh for all C files | EuAndreh | 2021-08-21 | 1 | -1/+1 |
| | | |||||
| * | src/tests-lib.c: Move testing helper function and share it with other files | EuAndreh | 2021-08-21 | 1 | -3/+3 |
| | | |||||
| * | Makefile: Generate build samples before running the tests | EuAndreh | 2021-08-20 | 1 | -1/+1 |
| | | | | | | This way even with failing tests one can see the interactive evolution of the generated HTML files. | ||||
| * | Makefile: Copy libgistatic.a and gistatic.h on "install" target | EuAndreh | 2021-08-20 | 1 | -3/+8 |
| | | |||||
| * | Makefile: Adapt to multiple C sources, generate src/config.h and libgistatic.a | EuAndreh | 2021-08-19 | 1 | -16/+40 |
| | | |||||
| * | aux/workflow/installcheck.sh: Remove in favor of repocheck.sh | EuAndreh | 2021-08-19 | 1 | -8/+1 |
| | | | | | | Adjust Makefile accordingly, alre removing "installcheck" and "uninstallcheck" targets. | ||||
| * | Makefile: rm src/tar.t in "clean" target | EuAndreh | 2021-08-17 | 1 | -1/+1 |
| | | |||||
| * | Makefile: Use CFLAGS_FINAL and LDLIBS_FINAL | EuAndreh | 2021-08-17 | 1 | -6/+4 |
| | | | | | | | | | This allows the caller to not only provide $(CFLAGS), but also override $(FINAL_CFLAGS). This accomplishes a similar behaviour to "CFLAGS += ...", but now allowing the caller to discard the appended flags too. | ||||
| * | Makefile: Fix $(MANPREFIX) path | EuAndreh | 2021-08-17 | 1 | -1/+1 |
| | | |||||
| * | Add stub src/tar.c | EuAndreh | 2021-08-07 | 1 | -1/+2 |
| | | |||||
| * | mv aux/assert-catgets.sh tests/assert-catgets.sh | EuAndreh | 2021-08-06 | 1 | -1/+1 |
| | | |||||
| * | mv aux/workflow/manpages.sh doc/manpages.sh | EuAndreh | 2021-08-06 | 1 | -3/+3 |
| | | |||||
| * | tests/: Add integration tests, also test with Valgrind | EuAndreh | 2021-08-05 | 1 | -12/+3 |
| | | |||||
| * | Move tests/resources{ => /repositories}/repo* | EuAndreh | 2021-08-05 | 1 | -5/+6 |
| | | |||||
| * | Makefile: Add "c-dev-check" target with Valgrind | EuAndreh | 2021-08-05 | 1 | -1/+12 |
| | | |||||
| * | Use .git symlink to simplify testing of embedded repositories | EuAndreh | 2021-08-05 | 1 | -1/+6 |
| | | |||||
| * | aux/assert-catgets.sh: Add, include in "check" target on Makefile; update ↵ | EuAndreh | 2021-08-02 | 1 | -0/+1 |
| | | | | | gistatic.msg | ||||
| * | Makefile: Add -lgit2 flag | EuAndreh | 2021-07-31 | 1 | -4/+6 |
| | | |||||
| * | Re-setup repository using C over Rust | EuAndreh | 2021-07-27 | 1 | -35/+78 |
| | | |||||
| * | Makefile: Stop using gzip | EuAndreh | 2021-06-12 | 1 | -1/+1 |
| | | |||||
| * | Makefile: Use $(NAME) | EuAndreh | 2021-06-04 | 1 | -7/+7 |
| | | |||||
| * | Update Makefile for Rust | EuAndreh | 2021-05-31 | 1 | -21/+12 |
| | | |||||
| * | Add Perl::Critic and B::Lint | EuAndreh | 2021-03-08 | 1 | -0/+2 |
| | | |||||
| * | mv doc/gistatic-templates.pod.5 doc/gistatic-template.pod.5; link to it in ↵ | EuAndreh | 2021-03-08 | 1 | -1/+1 |
| | | | | | README.md | ||||
| * | Makefile: Clean pod2htmld.tmp file on "clean" target | EuAndreh | 2021-03-08 | 1 | -1/+1 |
| | | |||||
| * | Adapt Makefile for Perl project, add placeholder files | EuAndreh | 2021-03-08 | 1 | -62/+23 |
| | | |||||
| * | Add empty tests/cli-opts.sh | EuAndreh | 2021-03-06 | 1 | -2/+3 |
| | | |||||
| * | Add base project skeleton files | EuAndreh | 2021-03-06 | 1 | -0/+96 |
