2 ms·
I use Fossil. It has some advantages: 1. Hashes are computed without adding any additional headers, so it will be the same as computing the hash normally. 2.
by zzo38computer 4y ago
I use Fossil. It has some advantages:
1. Hashes are computed without adding any additional headers, so it will be the same as computing the hash normally.
2. The /raw capability is a good thing to have.
3. The deck format is not bad.
4. The command-line interface is less confusing than git.
5. It is written in C.
It isn't perfect, but it is more than good enough. (If I do have to change it, I would do "Generalized Fossil" (I already wrote the specification, although no implementation exists yet as far as I know), which will have the same five advantages listed above, and is compatible with the same /raw capability and deck format of existing Fossil repository, too (except old technote edits, but fortunately I do not have any).)
- QuadrupleA 4y agoI've read this comment a few times and even unsuccessfully googled /raw and deck format, and this still sounds like GPT-3 to me.
- zzo38computer 4y agoFossil does not call it the "deck format", although libfossil and Generalized Fossil both do so. The /raw interface allows accessing a raw file (including decks) by its hash or branch name, over HTTP(S). See [0] for the Fossil deck format. (Generalized Fossil uses the same format, but any combination of cards is allowed, as long as there is exactly one Z card, and not more than one W card; they must still be in the correct order with no duplicates. There are many other details too (e.g. "subrepositories", which can allow you to optionally make decks unparseable in some subrepositories), most of which will not be mentioned in this comment, but I will say that it is mostly a superset of the ordinary Fossil format, except that ordinary Fossil allows cards to be in the wrong order in some circumstances (specifically, technote edits in some versions) that Generalized Fossil does not allow.) See [1] for an example of the /raw interface (in this case, a mirror of one of my own projects; however, this will work on any publicly accessible Fossil repository). The name "trunk" at the end of the URL is the branch name; you can compute the SHA-1 hash of the returned file and substitute that in place of the word "trunk", and you will get a permanent link to that version. The lines starting with F are the files in that version; each line has the file name, and then the hash, and sometimes another field specifying file mode ("x" means executable). Substituting the hash of the file in the end of the URL will access the contents of that file. The line starting with P has the hash of the previous version; you can put that in the URL to access the previous version. (In at least one case, I have used this /raw capability to download a single version of a Fossil repository. It is a simpler interface than using /xfer, if you do not have Fossil installed on your computer.) [0] https://fossil-scm.org/home/doc/trunk/www/fileformat.wiki https://fossil-scm.org/home/doc/trunk/www/fileformat.wiki [1] http://chiselapp.com/user/zzo38/repository/freeheromesh/raw/trunk http://chiselapp.com/user/zzo38/repository/freeheromesh/raw/...