emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ELPA commit freeze


From: Dmitry Gutov
Subject: Re: ELPA commit freeze
Date: Tue, 20 Aug 2013 12:26:58 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130803 Thunderbird/17.0.8

On 20.08.2013 08:16, Stefan Monnier wrote:
The packages/js2-mode subtree history is wrong,

That's for sure: it pretends that all changes until the conversion to
Git happened directly in `elpa'.

Aside from that, git log -- packages/js2-mode doesn't show the commits from the upstream repo at all, only the merge commit. Can you explain that? I remember that Bzr somehow omits histories of the merged branches (by default?), but 'git log' usually shows all commits that ended up in the current branch history.

so the wrong history got pushed.

I'd expect this history to be "the true js2-mode history plus
a redundant copy of that history from the packages/js-2mode directory of
the Bzr branch".  Is that the case, or do you get "the true js-2mode
history plus the complete history of the whole elpa branch".

Something along the lines of the latter. Here's what the push contained:

https://github.com/mooz/js2-mode/compare/2c27e3eb847c...05424b8245b6 (the view is limited to 250 commits, but there were obviously more of them). 2c27e3eb847c is the current upstream HEAD.

And here's the report from the automatic build on Travis-CI: https://travis-ci.org/mooz/js2-mode/builds/10312341 After checking out the new version, it couldn't find .travis.yml, because the tree contained the whole elpa:

https://github.com/mooz/js2-mode/tree/05424b8245b62e95e2b376cbc63ed182cb1c8bee

In the case of a "duplicate history", I think it's about as good as it's
going to get, because of the fact that the "subtree merge" was only made
at the end.

Do you think it's too late to rewrite history? Apparently, git filter-branch allows to remove a directory from history.

So we could check out the version before externals were introduces, erase all their respective directories, then apply all commits made to the "administrative" part of the tree, and then add the subtrees properly. Some cleanup commits would have to be re-applied, but there's not a lot of them.

If it's too late, I suppose we can live with that, but this way we a) give up an easy way to sync back, b) accept that we'll see each non-upstream commit in externally maintained packages's histories twice: once for when it's made, second after it's cherry-picked, committed to upstream and then merged back into elpa.

> To get something better, we'd have to reconstruct the elpa
> branch bit by bit, performing the merges as if they'd been done right
> back when we added/updated all those externally maintained branches.

I'm not sure which merges you mean, but the way I described we'd give up older changes from before conversion to Git, that still aren't merged into upstreams now.

You did. See 293db6e (Fix up copyrights and the checking code).

I think this was before I fixed the email-massaging scripts to adjust to
the new format.  I'll install one of my pending minor cleanups to the
js2-mode, so we can make sure it works.

Ok.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]