how to fork and record patches to foreign projects

Sky Hester skyjhester at gmail.com
Mon Mar 19 17:21:59 UTC 2018


There’s a handy version-control discipline proposed on the District Data Labs blog, written by Vincent Driessen.

http://nvie.com/posts/a-successful-git-branching-model/ <http://nvie.com/posts/a-successful-git-branching-model/>

Would that sort of model be appropriate for the requirements you are outlining? Some of your specific ideas are formalized there.

-Sky

> On Mar 19, 2018, at 9:14 AM, Attila Lendvai <attila at lendvai.name> wrote:
> 
>> Yes - let’s do this.    So every forked library gets a ‘clasp’ branch.
>> Can we then stop using specific commit hashes in the wscript file?
> 
> yes (but see below).
> 
> we can also use the two combined in the build-refactor: a (branch,
> commit) pair to point to a specific revision, yet remain under a named
> branch. this is better, because it avoids a 'detached head' state in
> the cloned repo, which makes certain operations troublesome. (if you
> 'git checkout [commit hash]', then the git repo gets into a detached
> head state, where e.g. git log is meaningless).
> 
> i suggest that all the commits that are meant for inclusion in the
> upstreams to be recorded in feature-branches, from where PR's can be
> opened to the upstreams.
> 
> this way the 'clasp' branch can be "polluted", i.e. it may get all
> kinds of merge commits, etc.
> 
> if the 'clasp' branch ever gets a git push -f (rewritten history)
> though, then the build script will have a hard time to switch
> revisions. that can be dealt with, but probably better to avoid this,
> because:
> 
> i'm not sure getting rid of the specific commit hashes is a good
> idea. that specific revision of the clasp codebase expects that
> specific commit/revision of the dependency (as opposed to the current
> head of its 'clasp' branch). if you ever want to do something like git
> bisect, then you want the build script to work with a specific version
> of the dependencies.
> 
> ideally, we should have reproducible builds, where the build output
> artifacts only depend on the source repo state that was used to
> initiate the build. this is a far cry for such a complex system like
> clasp, but applying whatever is feasible of this philosophy is useful
> nevertheless.
> 
> i can implement this cleanup of the repos after the build-refactor has
> been merged (and when you're available on IRC for quick questions
> regarding the status of the repos).
> 
> -- 
> • attila lendvai
> • PGP: 963F 5D5F 45C7 DFCD 0A39
> --
> “If there's a book you really want to read but it hasn't been written
> yet, then you must write it.”
> 	— Toni Morrison [same with software — François-René Rideau (Faré)]
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/clasp-devel/attachments/20180319/51d38582/attachment-0001.html>


More information about the clasp-devel mailing list