Re: git tag --no-merged?

2015-02-05 Thread Peter Krefting

Kyle J. McKay:


I think something like this might do what you want:

git for-each-ref --format='%(refname)' refs/tags | \
while read t; do
if ! git merge-base --is-ancestor $t HEAD; then
  echo ${t#refs/tags/}
fi
done


That works like a charm, thank you!

--
\\// Peter - http://www.softwolves.pp.se/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: git tag --no-merged?

2015-02-04 Thread Kyle J. McKay

On Feb 4, 2015, at 07:19, Peter Krefting wrote:
Using "git branch --no-merged" I can get a list of branches that I  
have that I haven't merged into my current branch. "git tag" doesn't  
have such an option, is there a way to achieve something similar  
listing tags that point to commits that aren't in my history?


I think something like this might do what you want:

git for-each-ref --format='%(refname)' refs/tags | \
while read t; do
  if ! git merge-base --is-ancestor $t HEAD; then
echo ${t#refs/tags/}
  fi
done

If you run that on the Git repository (assuming you've checked out  
master), after a while (there are a lot of tags to check) it spits out  
v1.4.4.5 (along with some complaints about *-gpg-pub tags that refer  
to blobs).


And sure enough, `git log v1.4.4.5 ^master` shows 5 commits not  
contained in master so I think it does what you want.  You'll want to  
restrict the for-each-ref output further, if possible, to make it  
quicker.


-Kyle

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: git tag --no-merged?

2015-02-04 Thread Junio C Hamano
Johannes Sixt  writes:

> Am 04.02.2015 um 16:19 schrieb Peter Krefting:
>> Using "git branch --no-merged" I can get a list of branches that I have
>> that I haven't merged into my current branch.
>
> Assuming v2.0.0 is a tag, using "git branch --no-merged v2.0.0" you can
> see which branches haven't been merged into v2.0.0.

I think the request is a bit more involved than "Which one is not
yet in v2.0.0?"

The question, as I now understand it after reading it again, 

I want to merge the changes from the maintenance branches to
master (and possibly to other maintenance branches if there are
changes relevant to other products), but I only want to do this for
our tagged released.

is "which branches, whose tips are already tagged, are not yet in
'master'?"

The one I gave is not what was asked, either, as I misread the
question.  It was an answer to "which commits are not yet in any
tagged version, show them together with the names of branches from
which they are reached".


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: git tag --no-merged?

2015-02-04 Thread Johannes Sixt
Am 04.02.2015 um 16:19 schrieb Peter Krefting:
> Using "git branch --no-merged" I can get a list of branches that I have
> that I haven't merged into my current branch.

Assuming v2.0.0 is a tag, using "git branch --no-merged v2.0.0" you can
see which branches haven't been merged into v2.0.0.

-- Hannes

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: git tag --no-merged?

2015-02-04 Thread Junio C Hamano
Peter Krefting  writes:

> Using "git branch --no-merged" I can get a list of branches that I
> have that I haven't merged into my current branch. "git tag" doesn't
> have such an option, is there a way to achieve something similar
> listing tags that point to commits that aren't in my history?

Using canned set of tools, I do not think there is anything less
complex than doing something like:

 $ git log --oneline --decorate --branches --not --tags

The longer term goal that has been floated a few times here is to
unify various logic that computes containment relationships in
"branch", "tags", etc. to one place and perhaps expose that unified
logic to "for-each-ref", but that hasn't happened yet.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


git tag --no-merged?

2015-02-04 Thread Peter Krefting

Hi!

Using "git branch --no-merged" I can get a list of branches that I 
have that I haven't merged into my current branch. "git tag" doesn't 
have such an option, is there a way to achieve something similar 
listing tags that point to commits that aren't in my history?




Background: In my $DAYJOB we have a couple of products that are built 
from a common source tree. Each of the products have their own 
maintenance branches, and releases from these maintenance branches are 
tagged. I want to merge the changes from the maintenance branches to 
master (and possibly to other maintenance branches if there are 
changes relevant to other products), but I only want to do this for 
our tagged released.


Using "git branch --no-merged" I can see which of the maintenance 
branches have commits that haven't been merged yet, but I cannot tell 
whether any of those have been tagged.


--
\\// Peter - http://www.softwolves.pp.se/
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html