‹ BackHN Continuity

Thread

The GitHub wiki is an anti-pattern (2022)

175 points · 112 comments · ibobev

  1. chungy · · focus · HN ↗
    Fossil (<a href="https:&#x2F;&#x2F;fossil-scm.org&#x2F;home&#x2F;doc&#x2F;trunk&#x2F;www&#x2F;index.wiki" rel="nofollow">https:&#x2F;&#x2F;fossil-scm.org&#x2F;home&#x2F;doc&#x2F;trunk&#x2F;www&#x2F;index.wiki) solves this pretty nicely. You can have documentation as files or in a special wiki namespace and it&#x27;s versioned both ways, and every repository clone gets everything. Even better than that, your in-tree documentation files are rendered and browseable in exactly the same way as the dedicated wiki namespace.

    The linked URL to the home page there can even serve as an example: the &quot;trunk&quot; is a check-in name (<a href="https:&#x2F;&#x2F;fossil-scm.org&#x2F;home&#x2F;doc&#x2F;trunk&#x2F;www&#x2F;checkin_names.wiki" rel="nofollow">https:&#x2F;&#x2F;fossil-scm.org&#x2F;home&#x2F;doc&#x2F;trunk&#x2F;www&#x2F;checkin_names.wiki) that points to the newest check-in on the &quot;trunk&quot; branch. You can replace it with any other reference to get the old version; eg, version-2.20 would work to get the version 2.20 of the docs, 2015-03-14 would work to get the version from 14 March 2015, etc.

    1. mghackerlady · · focus · HN ↗
      Fossil is the best. Sqlite uses it
      1. rpdillon · · focus · HN ↗
        Yep, I use Fossil for all my side projects. Super easy to host, tiny, includes everything I need for a project, all in one file. Great piece of software.
        1. yellowapple · · focus · HN ↗
          I&#x27;ve been gradually migrating my Git repos to Fossil as I&#x27;ve been touching them. Been quite happy with it.

          There are only a couple things that I miss:

          - Grouping repos together into a combined project. I&#x27;d love to be able to have a single Fossil server&#x2F;instance with a single set of users, wiki pages, tickets, etc. but multiple independent codebases. Closest I&#x27;ve gotten to that is to simply have multiple independent branches instead of a single trunk (example: <a href="https:&#x2F;&#x2F;fsl.yellowapple.us&#x2F;avorion&#x2F;home" rel="nofollow">https:&#x2F;&#x2F;fsl.yellowapple.us&#x2F;avorion&#x2F;home), and it&#x27;s worked surprisingly well, but it&#x27;s clear Fossil wasn&#x27;t designed with this workflow in mind, so there are some rough edges with it (albeit minor and easy to work around).

          - Compatibility with things that assume you&#x27;re using Git. Being able to export to Git helps a lot here, but it&#x27;s still extra steps. Ideal solution here would be for the Fossil server to be able to double as a Git forge and present repos accordingly, such that I can point things like CI&#x2F;CD pipelines or Terragrunt module calls or whatever directly to the Fossil repo itself over the Git interface those things expect instead of having to setup a Git forge manually and somehow synchronize everything w.r.t. access controls.

          - An equivalent to Git&#x27;s submodules. This would IMO help address the “grouping repos together into a combined project” case as well.

          1. somat · · focus · HN ↗
            There are login-group options which lets you have a single sign on with a group of repos, To unify the other bits it looks like it would be possible to change the main menu links to the central repo(in the web settings).

            Never wanted to do what you want but it sounds possible

            set up the fossil server on a directory of repos probably with --repolist to get a list

                fossil server --repolist &#x2F;var&#x2F;fossil&#x2F;
            
            get all repos in the same login-group

            change the menus in each repo to point to the core repo. Based on some quick tests I suspect a full http:&#x2F;&#x2F; url is required.

                - Forum     &#x2F;forum       {@2 3 4 5 6}
                + Forum     https:&#x2F;&#x2F;mydomain.org&#x2F;core&#x2F;forum       {@2 3 4 5 6}
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.