On 6/5/2014 01:51, j. van den hoff wrote:

what _is_ missing is the GitHub layer

I wish to do without that layer. I like Fossil the way it is: simple to use, yet powerful. I like being able to host my Fossil repo on my own server.

Perhaps you're getting hung up on the fact that I described it as similar in spirit to a Git pull request.

What it *really* is is a request for an uber-patch mechanism.

Another way to think of it is an external form of "fossil stash", with the ability to reintegrate the private fork with the main repo when the outside contributor is finished with their little side project.

The only reason we need it is that we don't want to give out Develop privs to everyone who wants to contribute a patch or two, and the alternative (fossil diff) is lossy.

fossil should keep clear of the rather obvious flaws
the git community sells as features

Agreed. That's why my proposal doesn't look anything like a Github pull request. It doesn't require that you "Fork Me On FossilHub", it doesn't require a formal connection between two repositories, it doesn't require the contributor to make their repo public, etc.

I don't see that I've added anything complex to the Fossil file format. It adds:

1. A starting point attribute: "This Fossil repo's initial commit has hash b49b9b65cb3e3dd3d0970949b5f72e95e7478d84, so if you apply me to another repo that contains a version with that ID, it forks off from that version." This shouldn't be more complex than a new single-row table.

2. The ability to intelligently extract a subset of a repo, which I expect amounts to a CREATE DATABASE call to SQLite followed by a single clever SELECT statement to copy the changeset into the new DB.

3. The ability to apply that subset to another Fossil repo, using the starting point version ID as the patch base. I'm thinking of ATTACH DATABASE, followed by some data copying from one DB to another, followed by a merge attempt.

4. A few commands to manage all this: fossil submit, fossil apply, plus extensions to fossil commit and fossil revert to understand temporary forks.

I realize implementing all this will take a fair bit of work. When I describe it as simple, I mean that I don't see that it changes a lot about how Fossil works internally.

I also don't expect this to make the user's life any more complicated. In the end, it should be scarcely more difficult to use than "fossil diff" + patch, but will give a lot of new power.

The temporary fork concept isn't really new. We already have forks, and we already have the stash. Once you commit a temporary fork, it will be an indelible part of the repo, just as if it had been committed and autosync'd.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to