<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>George asked that I post some scenarios where this would be
useful.<br>
</p>
1. You are about to create updated asterisk package and want to
quickly scan the changes to 13 since latest 13.x.0 release to see if
anything is a 'must patch' for your deployments. You can use 'tig'
to review changes for critical fixes until you reach the tag
'13.x.0-rc1' (which you can see in the list because the tag was
merged). I know the end result can be accomplished by other means,
but not as easily.<br>
<p>2. You've created an automated test to try finding a performance
regression. The test runs asterisk under a profiler and stores
results. Each revision you test needs a new file to store results
- 'git describe' would provide an excellent filename that is
unique per revision.</p>
<p>One thing I'm not sure about is if we should only merge rc1 tags
or if we should merge all new release tags. At first all release
tags seem reasonable, but the order of tags other than rc1 would
be off. rc1 is special because it would be merged back to
mainline before anything else. Even 13.x.0 does not get cut until
after other commits are merged to 13, so if we merged 13.19.0 to
13, the commits made since 13.19.0-rc1 would appear out of order
(before 13.19.0). The difference between rc1 and final release is
always small, but the number of new commits to mainline between
that time can be quite large.<br>
</p>
<br>
<div class="moz-cite-prefix">On 12/21/2017 10:45 AM, Corey Farrell
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:6f74c0a6-4ed3-f6a5-bad5-23247a62319c@cfware.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
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.<br>
<br>
No changes will be needed to our handling of '.lastclean', please
ignore those comments as I was wrong.<br>
<br>
<div class="moz-cite-prefix">On 12/21/2017 08:19 AM, George Joseph
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAP=uFEtGEcPtTGn2ufuoes6cm3dp+6sdzm6nsH3DKT--FM0HTA@mail.gmail.com">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Dec 20, 2017 at 3:14 PM,
Corey Farrell <span dir="ltr"><<a
href="mailto:git@cfware.com" target="_blank"
moz-do-not-send="true">git@cfware.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>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.<br>
</p>
</div>
</blockquote>
<div>Sounds reasonable.</div>
<div><br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p> </p>
<p>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.<br>
</p>
</div>
</blockquote>
<div>"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?</div>
<div> <br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p> </p>
<p>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.<br>
</p>
</div>
</blockquote>
<div>These kind of things we can alter to suite our needs
so there shouldn't be an issue.</div>
<div> <br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p> </p>
<div>
<div class="h5"> <br>
<div class="m_8559998465513526041moz-cite-prefix">On
12/20/2017 12:58 PM, George Joseph wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Dec 20,
2017 at 8:14 AM, Tzafrir Cohen <span
dir="ltr"><<a
href="mailto:tzafrir.cohen@xorcom.com"
target="_blank" moz-do-not-send="true">tzafrir.cohen@xorcom.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div class="m_8559998465513526041HOEnZb">
<div class="m_8559998465513526041h5">On
Wed, Dec 20, 2017 at 07:50:03AM
-0700, George Joseph wrote:<br>
> On Wed, Dec 20, 2017 at 2:44
AM, Tzafrir Cohen <<a
href="mailto:tzafrir.cohen@xorcom.com"
target="_blank"
moz-do-not-send="true">tzafrir.cohen@xorcom.com</a>><br>
> wrote:<br>
><br>
> > Off-topic:<br>
> ><br>
> > On Tue, Dec 19, 2017 at
01:50:03PM -0700, George Joseph
wrote:<br>
> ><br>
> > > Thankfully we tag
EVERYTHING! :)<br>
> ><br>
> > asterisk(13)$ git describe<br>
> >
13.15.0-rc1-908-ge31e3b581b<br>
> ><br>
> > asterisk(14)$ git describe<br>
> > fatal: No tags can
describe
'fb18797ae09a685ec71101499fb1c<wbr>1c606b16397'.<br>
> > Try --always, or create
some tags.<br>
> ><br>
> > asterisk(15)$ git describe<br>
> > fatal: No tags can
describe
'd312068ee93ff8ce97b464f3c2ff3<wbr>304e15cb3fe'.<br>
> > Try --always, or create
some tags.<br>
> ><br>
> ><br>
> > I wasted half an hour
yesterday trying to find out why a
build sis not<br>
> > switch from master to 13,
only to realize that the name of the
git<br>
> > branch in the version
string is always "master".<br>
> ><br>
> > We tag everything. But
only well after it was branched from
the main<br>
> ><br>
> branch.<br>
> ><br>
><br>
> I'm not following you.<br>
><br>
> We tag every release...<br>
><br>
> $ git checkout 13.18.4<br>
> HEAD is now at f4644317b7...
Update for 13.18.4<br>
> $ git describe<br>
> 13.18.4<br>
<br>
<br>
</div>
</div>
<span>> $ git checkout 13.18<br>
> Switched to branch '13.18'<br>
> Your branch is up-to-date with
'gerrit/13.18'.<br>
> $ git describe<br>
> 13.18.4<br>
<br>
<br>
> $<br>
><br>
> We have to create the minor
release branch (13.18) and do the work
there so<br>
> that patch releases (13.18.4) are
based on the minor release branch, not<br>
> the major branch.<br>
<br>
</span>Those branches are likewise
short-lived branches (at least with
respect<br>
to the number of commits). Real work is
done on master, 13, 15 and such.<br>
But when I'm on such a branch, I can't
ask git on which branch I am (not<br>
to mention: at which stage in it).<br>
</blockquote>
<div><br>
</div>
<div> I _think_ I understand now.</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex"> <br>
For instance: maybe whenever you tag a
new release branch (e.g. 13.18),<br>
tag the split point as something like
"13.18.base" or "base.13.18"?<br>
</blockquote>
<div><br>
</div>
<div>Well, that's easy enough. Toss us an
issue for it.</div>
<div> <br>
</div>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex"> <br>
But maybe it's just me and branches 13
and 15 are not widely used (for<br>
master it is irrelevant anyway).<br>
<div class="m_8559998465513526041HOEnZb">
<div class="m_8559998465513526041h5"><br>
--<br>
Tzafrir Cohen<br>
+972-50-7952406 mailto:<a
href="mailto:tzafrir.cohen@xorcom.com" target="_blank"
moz-do-not-send="true">tzafrir.cohen@xorcom.c<wbr>om</a><br>
<a href="http://www.xorcom.com"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.xorcom.com</a><br>
<br>
--<br>
______________________________<wbr>______________________________<wbr>_________<br>
-- Bandwidth and Colocation Provided
by <a
href="http://www.api-digital.com"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://www.api-digital.com</a>
--<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options
visit:<br>
<a
href="http://lists.digium.com/mailman/listinfo/asterisk-dev"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://lists.digium.com/mailm<wbr>an/listinfo/asterisk-dev</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div
class="m_8559998465513526041gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr"><span
style="font-size:12.8px">George Joseph</span><br
style="font-size:12.8px">
<span style="font-size:12.8px">Digium,
Inc. | Software Developer</span><span
style="font-size:12.8px"><br>
445 Jan Davis Drive NW - Huntsville,
AL 35806 - US<br>
</span><span style="font-size:12.8px">Check
us out at: </span><a
href="http://www.digium.com/"
rel="noreferrer"
style="color:rgb(17,85,204);font-size:12.8px"
target="_blank" moz-do-not-send="true">www.digium.com</a><span
style="font-size:12.8px"> & </span><a
href="http://www.asterisk.org/"
rel="noreferrer"
style="color:rgb(17,85,204);font-size:12.8px"
target="_blank" moz-do-not-send="true">www.<wbr>asterisk.org</a><br>
<div><br>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset
class="m_8559998465513526041mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
</div>
</div>
</div>
<br>
--<br>
______________________________<wbr>______________________________<wbr>_________<br>
-- Bandwidth and Colocation Provided by <a
href="http://www.api-digital.com" rel="noreferrer"
target="_blank" moz-do-not-send="true">http://www.api-digital.com</a>
--<br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
<a
href="http://lists.digium.com/mailman/listinfo/asterisk-dev"
rel="noreferrer" target="_blank"
moz-do-not-send="true">http://lists.digium.com/<wbr>mailman/listinfo/asterisk-dev</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr"><span style="font-size:12.8px">George
Joseph</span><br style="font-size:12.8px">
<span style="font-size:12.8px">Digium, Inc. | Software
Developer</span><span style="font-size:12.8px"><br>
445 Jan Davis Drive NW - Huntsville, AL 35806 - US<br>
</span><span style="font-size:12.8px">Check us out at: </span><a
href="http://www.digium.com/" rel="noreferrer"
style="color:rgb(17,85,204);font-size:12.8px"
target="_blank" moz-do-not-send="true">www.digium.com</a><span
style="font-size:12.8px"> & </span><a
href="http://www.asterisk.org/" rel="noreferrer"
style="color:rgb(17,85,204);font-size:12.8px"
target="_blank" moz-do-not-send="true">www.asterisk.org</a><br>
<div><br>
</div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
</blockquote>
<br>
</body>
</html>