On 06/07/18 14:18, Warren Young wrote:
On Jun 6, 2018, at 4:06 AM, Alice Wonder <al...@domblogger.net> wrote:
I'm not anti-microsoft but I'm worried they will make changes that I don't like
(e.g. requiring ms account, changing billing, etc.) so I figured better take
control now.
What had you using GitHub in the first place, then? Is it just the web UI,
since you’ve apparently decided that none of GitHub’s other major advantages
over stock Git matter? Those being:
- pull request management
- the social network
- one-click hosting
- issue tracking
- GitHub.io
But... can anyone recommend a web front end?
Do you actually enjoy using Git over the alternatives? Do you know what your
alternatives are?
Once you get past a perceived need to participate in the network effects from
the popularity of Git and GitHub, you have several superior options, on some
axes.
My personal choice is Fossil, the DVCS behind SQLite:
https://fossil-scm.org/
Thank you, Warren, for nice writeup!! It's very instructive!
Valeri
It’s much easier to use Fossil than Git when things go well, it’s less likely
to get you tangled up than Git when things *don’t* go well, and it provides
much of what GitHub does over stock Git.
There’s only one area I’m aware of where Git is actually easier to use than
Fossil, and that’s in the initial clone. It’s a single command in Git, whereas
it’s a several-step process in Fossil, in part owing to one of Fossil’s
advantages over Git, that being that the local repository clone and local
checkout are separate things in Fossil, which avoids the need for hacks like
git-worktree.
If you’re worried that your users will have to deal with that complexity, it’s
not true: Fossil makes it easy to set up single-click zip and tarball download
links, so that those not needing a “real” repo checkout don’t have to put up
with the complexity.
If you want to see it in action, the Fossil web site I pointed you to above
*is* Fossil. (They eat their own dog food!) The SQLite web site is another:
https://sqlite.org/
It doesn't need to be as fancy as github
Fossil’s web UI is more advanced than GitHub in some ways:
1. I find Fossil’s timeline view more useful than GitHub’s closest equivalent,
the “Commits” page. The commits all look “flat” to me in GitHub, whereas
parentage, branches, etc. are clearer in Fossil’s web timeline view. I suspect
this is actually a reflection of a difference in the underlying philosophies of
these two DVCSes rather than some UI designer’s idiosyncratic preference, but
I’ll get back to that later.
2. Fossil makes it easy to diff two versions from the web UI: click the bubble
next to the “from” version in the timeline view, then click the bubble next to
the “to” version. GitHub’s equivalent is much more complicated:
https://help.github.com/articles/comparing-commits-across-time/
3. Fossil’s ticket tracker is more advanced than GitHub’s issue tracker in
several ways, and it’s quite configurable if you don’t like the out-of-box
behavior. GitHub’s issue tracker is little more than a tagged comment system.
4. Each Fossil instance can be configured to a custom startup page. By
default, it’s a wiki document called “Home”, which you typically write to serve
the needs of new users on a public project. For private projects, my first
need on visiting the Fossil web UI is almost never a wiki document, so I find
it more useful to default to the timeline view.
If you want a more GitHub-like experience, you could make the default web UI
view be the Files page, but I never quite understood why I’d like to see a file
browser as my project’s default presentation to the public. If you force me to
dig through the Files view to find things in your project, the project’s
maintainers have probably failed in their duty to guide new users to key
material.
5. Fossil is skinnable. If you don’t like the default skin, which is that used
by the Fossil and SQLite project sites, it currently ships with a dozen others,
one of which you may like better. And if you don’t like any of those, anyone
with web front-end skills can make a new one. Here’s a non-default skin that I
made, to match the esthetics of the hardware related to the repository:
https://tangentsoft.com/pidp8i/
There must be advantages to GitHub’s web UI relative to Fossil, but none come
immediately to my mind. I’ve asked GitHub fans to name some, and so far I’ve
only gotten vague answers that amount to familiarity rather than objective
advantages.
Now, above I spoke of a major philosophical difference between Git and Fossil:
Git was made to support the needs of the Linux kernel developers, whereas
Fossil was made to support the needs of the SQLite developers. Which one is
closer to the way you manage your projects?
There are several differences between the two DVCSes that I believe fall out of
that basic difference.
Git wants each “leaf” developer to work disconnected from the rest until he has
something coherent to push up through the commit hierarchy towards the core.
Thus “fork me on GitHub”, the private stash, rebase, etc. I believe this is
also why GitHub’s commit view looks “flat:” the Git esthetic is that everything
is made to appear as though it happened in a perfectly coordinated fashion even
though the actual development process was an otherwise unmanageable mess.
You need these design choices when, like the Linux kernel, you have thousands
of developers in hundreds of companies, plus innumerable singletons running
around providing drive-by patches.
Fossil, by contrast, records what happens, as it happens, publicly. It’s
better suited to the vast majority of projects, where the developers are
expected to work closely together. Fossil is a coordination tool for
coordinated teams, whereas Git is a coordination tool for herds of cats. :)
Again I ask, which project does yours most closely resemble from a development
process standpoint: SQLite or the Linux kernel?
An outsider who didn’t understand the nature of network effects and didn’t
watch the history happen might assume that the majority of developers believe
they have Linus Torvalds’ problems, and thus also need a tool specifically
crafted to meet his needs.
For those with existing Git repositories, Fossil has an import mechanism:
https://fossil-scm.org/index.html/doc/trunk/www/inout.wiki
…and an export mechanism if you later decide that you really do have Linus
Torvalds’ same problems. :) Or more likely, that you really do need the
benefit of the network effects.
but it does need to parse markdown as all my documentation is in markdown.
Fossil does that just fine. The dialect differs a bit from GitHub-flavored
Markdown, but it’s quite usable.
Fossil also allows pure HTML and a wiki dialect.
Preferably something that "just works" with CentOS 7.
Fossil doesn’t seem to be packaged in any of the major CentOS repositories, but
the official binary appears to run on CentOS 7:
https://fossil-scm.org/index.html/uv/download.html
I say “appears to” because I normally use binaries I build from source, since I
frequently like to try out upcoming features and such. Fossil’s development
trunk is generally quite stable without being moribund, which is a sign of a
well-managed and healthy project.
_______________________________________________
CentOS mailing list
CentOS@centos.org
https://lists.centos.org/mailman/listinfo/centos
--
++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev
Sr System Administrator
Department of Astronomy and Astrophysics
Kavli Institute for Cosmological Physics
University of Chicago
Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
_______________________________________________
CentOS mailing list
CentOS@centos.org
https://lists.centos.org/mailman/listinfo/centos