I just read `git help merge` again and I think the solution is 'git checkout 13 && git merge --strategy ours 13.19.0-rc1'.  This would effectively tell git that '13' already contains 13.19.0-rc1, but without actually trying to pull any changes to 13.  This merge would be the final step of mkrelease.py.

No changes will be needed to our handling of '.lastclean', please ignore those comments as I was wrong.

On 12/21/2017 08:19 AM, George Joseph wrote:


On Wed, Dec 20, 2017 at 3:14 PM, Corey Farrell <g...@cfware.com <mailto:g...@cfware.com>> wrote:

    One thing that might improve this is if releases were merged back
    to the major branch.  Currently the commit "Update for
    13.19.0-rc1" is on the 13.19 branch and tagged as 13.19.0-rc1.  I
    believe that if we added 'git checkout 13 && git merge
    13.19.0-rc1' we would get better information from 'git describe
    13' and tags would appear in 'git log 13 --oneline'.  This would
    continue working even after we delete the minor branches.

Sounds reasonable.

    As a test I just ran 'git merge 13.18.4' from the current 13
    branch.  The merge did have 2 conflicts but that's because 13.18
    was branched so long ago and a couple files that were modified in
    minor releases have since been modified again or deleted.  Then I
    ran 'git describe 13', it said '13.18.4-404-gd5d67bb1f4'.  This
    tells us that my local branch had about 404 commits (including
    merges) that are not part of 13.18.0-rc1 (the point where 13.18
    diverged from 13 because 13.18.3 was not merged back).  Merging
    each tag as soon as it's created would make the results more
    accurate. and (almost always) eliminate merge conflicts.

"almost always" will be an issue since it's the scripts that do the work.  It's kinda frustrating already when you're trying to get releases out the door and something goes wrong with the script.  What conditions do you think might still cause merge conflicts?

    The only wrinkle in this plan is that the '.lastclean' file is
    created on the releases but it's listed in .gitignore.  I think we
    might be able to just get rid of the .lastclean and .cleancount
    files. This Makefile hack predates the use of SVN and I don't
    think it's necessary.  One thing it does do is try to enable the
    astdb2sqlite3 utility, but Berkely DB was last used in Asterisk
    1.8.  The default is for that utility to be enabled, that's
    enough.  In addition the mkrelease script actually copies
    .cleancount to .lastclean, I think that means it's disabled for
    releases.

These kind of things we can alter to suite our needs so there shouldn't be an issue.


    On 12/20/2017 12:58 PM, George Joseph wrote:


    On Wed, Dec 20, 2017 at 8:14 AM, Tzafrir Cohen
    <tzafrir.co...@xorcom.com <mailto:tzafrir.co...@xorcom.com>> wrote:

        On Wed, Dec 20, 2017 at 07:50:03AM -0700, George Joseph wrote:
        > On Wed, Dec 20, 2017 at 2:44 AM, Tzafrir Cohen
        <tzafrir.co...@xorcom.com <mailto:tzafrir.co...@xorcom.com>>
        > wrote:
        >
        > > Off-topic:
        > >
        > > On Tue, Dec 19, 2017 at 01:50:03PM -0700, George Joseph
        wrote:
        > >
        > > > Thankfully we tag EVERYTHING! :)
        > >
        > > asterisk(13)$ git describe
        > > 13.15.0-rc1-908-ge31e3b581b
        > >
        > > asterisk(14)$ git describe
        > > fatal: No tags can describe
        'fb18797ae09a685ec71101499fb1c1c606b16397'.
        > > Try --always, or create some tags.
        > >
        > > asterisk(15)$ git describe
        > > fatal: No tags can describe
        'd312068ee93ff8ce97b464f3c2ff3304e15cb3fe'.
        > > Try --always, or create some tags.
        > >
        > >
        > > I wasted half an hour yesterday trying to find out why a
        build sis not
        > > switch from master to 13, only to realize that the name
        of the git
        > > branch in the version string is always "master".
        > >
        > > We tag everything. But only well after it was branched
        from the main
        > >
        > branch.
        > >
        >
        > I'm not following you.
        >
        > We tag every release...
        >
        > $ git checkout 13.18.4
        > HEAD is now at f4644317b7... Update for 13.18.4
        > $ git describe
        > 13.18.4


        > $ git checkout 13.18
        > Switched to branch '13.18'
        > Your branch is up-to-date with 'gerrit/13.18'.
        > $ git describe
        > 13.18.4


        > $
        >
        > We have to create the minor release branch (13.18) and do
        the work there so
        > that patch releases (13.18.4) are based on the minor
        release branch, not
        > the major branch.

        Those branches are likewise short-lived branches (at least
        with respect
        to the number of commits). Real work is done on master, 13,
        15 and such.
        But when I'm on such a branch, I can't ask git on which
        branch I am (not
        to mention: at which stage in it).


     I _think_ I understand now.


        For instance: maybe whenever you tag a new release branch
        (e.g. 13.18),
        tag the split point as something like "13.18.base" or
        "base.13.18"?


    Well, that's easy enough.  Toss us an issue for it.


        But maybe it's just me and branches 13 and 15 are not widely
        used (for
        master it is irrelevant anyway).

        --
                       Tzafrir Cohen
        +972-50-7952406           mailto:tzafrir.co...@xorcom.com
        <mailto:tzafrir.co...@xorcom.com>
        http://www.xorcom.com

        --
        _____________________________________________________________________
        -- Bandwidth and Colocation Provided by
        http://www.api-digital.com --

        asterisk-dev mailing list
        To UNSUBSCRIBE or update options visit:
        http://lists.digium.com/mailman/listinfo/asterisk-dev
        <http://lists.digium.com/mailman/listinfo/asterisk-dev>




-- George Joseph
    Digium, Inc. | Software Developer
    445 Jan Davis Drive NW - Huntsville, AL 35806 - US
    Check us out at: www.digium.com <http://www.digium.com/> &
    www.asterisk.org <http://www.asterisk.org/>





    --
    _____________________________________________________________________
    -- Bandwidth and Colocation Provided by http://www.api-digital.com --

    asterisk-dev mailing list
    To UNSUBSCRIBE or update options visit:
    http://lists.digium.com/mailman/listinfo/asterisk-dev
    <http://lists.digium.com/mailman/listinfo/asterisk-dev>




--
George Joseph
Digium, Inc. | Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com <http://www.digium.com/> & www.asterisk.org <http://www.asterisk.org/>




-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to