On 12/25/17, Shekhar Reddy <shekharreddy.k...@gmail.com> wrote: > > Is there any particular reason that the source is not moved to GitHub? I > think that would reach more number of people there. >
There is a mirror of the SQLite repository on GitHub at https://github.com/mackyle/sqlite (maintained by GitHub user "mackyle" whom I do not know, but whose efforts I do appreciate). SQLite uses a different version control system called Fossil. See https://www.fossil-scm.org/ for more information about Fossil. Fossil is superior to Git+GitHub in many respects. You can easily see this by doing a side-by-side comparison of the SQLite Fossil repository against the GitHub mirror. For example, here is the GitHub view of the "dbpage" branch of SQLite: https://github.com/mackyle/sqlite/commits/dbpage Compare the above against the equivalent Fossil view: https://www.sqlite.org/src/timeline?p=dfdebd12bfc80b91 The Fossil view clearly shows that the head of "dbpage" is the merger of two other branches, and Fossil shows clearly where the branch diverged from trunk. That information is very difficult to discern from the GitHub view. Fossil also has the ability to show the complete context of an individual branch. For the "dbpage" branch, the context is shown here: https://www.sqlite.org/src/timeline?r=dbpage Note in particular that Fossil clearly shows that the "dbpage" branch was ultimately merged back into trunk. GitHub does not provide that information, as far as I can tell. The basic problem with Git (apart from its notoriously convoluted user interface) is that it is based on a (bespoke) key/value database - the "packfile". Fossil, on the other hand, is based on the most widely used relational database in the world. This make information much easier to extract from Fossil than from Git. For example, given a commit in Git (perhaps one reported by a customer or one found via bisect) there is no easy way in Git to find out what comes next - what commits were entered using your commit as a baseline. Git shows ancestors, but not descendants. Fossil, on the other hand, easily shows both descendants and ancestors of a check-in. You see this in the "Context" section of any Fossil commit page, such as https://www.sqlite.org/src/info/dfdebd12bfc80b91 The fact that Git/GitHub does not show the descendants of a commit is a show-stopper for me. Finally, the use of GitHub would create a reliance on an outside company over which we have no influence. The people who run GitHub today seem like great folks. But the company might be sold or fall under new management tomorrow, and the friendly and open policies that govern GitHub today might change in an instant. Fossil, on the other hand, is very simple to self-host on a $5/month VPS. (SQLite uses https://www.linode.com/ for its main servers and https://www.digitalocean.com for the https://www3.sqlite.org/ backup. There are lots of others.) So, given that Fossil is freer than Git (BSD vs. GPL), that Fossil embodies all of the functionality of both Git and GitHub, that Fossil is more capable than Git/GitHub, that Fossil has a friendly user interface than Git, and that Fossil is very easy to self-host and thus frees you of any dependencies on third-party companies, the question becomes: Why aren't you moving all of your GitHub projects over to Fossil! -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users