<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/refs.h, branch v2.7.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.7.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.7.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2015-11-05T19:25:02Z</updated>
<entry>
<title>hideRefs: add support for matching full refs</title>
<updated>2015-11-05T19:25:02Z</updated>
<author>
<name>Lukas Fleischer</name>
<email>lfleischer@lfos.de</email>
</author>
<published>2015-11-03T07:58:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=78a766ab6eaaa91c2638158bd4fda06a93291da0'/>
<id>urn:sha1:78a766ab6eaaa91c2638158bd4fda06a93291da0</id>
<content type='text'>
In addition to matching stripped refs, one can now add hideRefs
patterns that the full (unstripped) ref is matched against. To
distinguish between stripped and full matches, those new patterns
must be prefixed with a circumflex (^).

This commit also removes support for the undocumented and unintended
hideRefs settings ".have" (suppressing all "have" lines) and
"capabilities^{}" (suppressing the capabilities line).

Signed-off-by: Lukas Fleischer &lt;lfleischer@lfos.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'kn/for-each-tag'</title>
<updated>2015-10-05T19:30:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-10-05T19:30:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8a54523f0f70134327e7b2a625b1777c796b07d5'/>
<id>urn:sha1:8a54523f0f70134327e7b2a625b1777c796b07d5</id>
<content type='text'>
The "ref-filter" code was taught about many parts of what "tag -l"
does and then "tag -l" is being reimplemented in terms of "ref-filter".

* kn/for-each-tag:
  tag.c: implement '--merged' and '--no-merged' options
  tag.c: implement '--format' option
  tag.c: use 'ref-filter' APIs
  tag.c: use 'ref-filter' data structures
  ref-filter: add option to match literal pattern
  ref-filter: add support to sort by version
  ref-filter: add support for %(contents:lines=X)
  ref-filter: add option to filter out tags, branches and remotes
  ref-filter: implement an `align` atom
  ref-filter: introduce match_atom_name()
  ref-filter: introduce handler function for each atom
  utf8: add function to align a string into given strbuf
  ref-filter: introduce ref_formatting_state and ref_formatting_stack
  ref-filter: move `struct atom_value` to ref-filter.c
  strtoul_ui: reject negative values
</content>
</entry>
<entry>
<title>ref-filter: add option to filter out tags, branches and remotes</title>
<updated>2015-09-17T17:02:48Z</updated>
<author>
<name>Karthik Nayak</name>
<email>karthik.188@gmail.com</email>
</author>
<published>2015-09-10T15:48:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5b4f28510f36062134390ad8818721c1d4a2760f'/>
<id>urn:sha1:5b4f28510f36062134390ad8818721c1d4a2760f</id>
<content type='text'>
Add a function called 'for_each_fullref_in()' to refs.{c,h} which
iterates through each ref for the given path without trimming the path
and also accounting for broken refs, if mentioned.

Add 'filter_ref_kind()' in ref-filter.c to check the kind of ref being
handled and return the kind to 'ref_filter_handler()', where we
discard refs which we do not need and assign the kind to needed refs.

Mentored-by: Christian Couder &lt;christian.couder@gmail.com&gt;
Mentored-by: Matthieu Moy &lt;matthieu.moy@grenoble-inp.fr&gt;
Signed-off-by: Karthik Nayak &lt;karthik.188@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'dt/refs-pseudo'</title>
<updated>2015-08-25T21:57:08Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-25T21:57:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=080cc646637f20494138c62fe6b8b0fee8d521fa'/>
<id>urn:sha1:080cc646637f20494138c62fe6b8b0fee8d521fa</id>
<content type='text'>
To prepare for allowing a different "ref" backend to be plugged in
to the system, update_ref()/delete_ref() have been taught about
ref-like things like MERGE_HEAD that are per-worktree (they will
always be written to the filesystem inside $GIT_DIR).

* dt/refs-pseudo:
  pseudoref: check return values from read_ref()
  sequencer: replace write_cherry_pick_head with update_ref
  bisect: use update_ref
  pseudorefs: create and use pseudoref update and delete functions
  refs: add ref_type function
  refs: introduce pseudoref and per-worktree ref concepts
</content>
</entry>
<entry>
<title>Merge branch 'jk/refspec-parse-wildcard'</title>
<updated>2015-08-03T18:01:31Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-03T18:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8d3981ccbed9fc211b4e67105015179d9d2a5692'/>
<id>urn:sha1:8d3981ccbed9fc211b4e67105015179d9d2a5692</id>
<content type='text'>
Allow an asterisk as a substring (as opposed to the entirety) of
a path component for both side of a refspec, e.g.
"refs/heads/o*:refs/remotes/heads/i*".

* jk/refspec-parse-wildcard:
  refs: loosen restriction on wildcard "*" refspecs
  refs: cleanup comments regarding check_refname_component()
</content>
</entry>
<entry>
<title>Merge branch 'dt/refs-backend-preamble'</title>
<updated>2015-08-03T18:01:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2015-08-03T18:01:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b6d323f1646d7204fc6693071e5be84377ece70b'/>
<id>urn:sha1:b6d323f1646d7204fc6693071e5be84377ece70b</id>
<content type='text'>
In preparation for allowing different "backends" to store the refs
in a way different from the traditional "one ref per file in $GIT_DIR
or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
direct filesystem access to ref-like things like CHERRY_PICK_HEAD
from scripts and programs.

* dt/refs-backend-preamble:
  git-stash: use update-ref --create-reflog instead of creating files
  update-ref and tag: add --create-reflog arg
  refs: add REF_FORCE_CREATE_REFLOG flag
  git-reflog: add exists command
  refs: new public ref function: safe_create_reflog
  refs: break out check for reflog autocreation
  refs.c: add err arguments to reflog functions
</content>
</entry>
<entry>
<title>refs: add ref_type function</title>
<updated>2015-07-31T17:39:04Z</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2015-07-31T06:06:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=266b18273a742a33970e634d1858f292befdf943'/>
<id>urn:sha1:266b18273a742a33970e634d1858f292befdf943</id>
<content type='text'>
Add a function ref_type, which categorizes refs as per-worktree,
pseudoref, or normal ref.

Later, we will use this in refs.c to treat pseudorefs specially.
Alternate ref backends may use it to treat both pseudorefs and
per-worktree refs differently.

Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>refs: loosen restriction on wildcard "*" refspecs</title>
<updated>2015-07-27T16:21:31Z</updated>
<author>
<name>Jacob Keller</name>
<email>jacob.keller@gmail.com</email>
</author>
<published>2015-07-22T21:05:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=cd377f45c9d06e8ab3e87d5a687ed22ab34e1c48'/>
<id>urn:sha1:cd377f45c9d06e8ab3e87d5a687ed22ab34e1c48</id>
<content type='text'>
Loosen restrictions on refspecs by allowing patterns that have a "*"
within a component instead of only as the whole component.

Remove the logic to accept a single "*" as a whole component from
check_refname_format(), and implement an extended form of that logic
in check_refname_component().  Pass the pointer to the flags argument
to the latter, as it has to clear REFNAME_REFSPEC_PATTERN bit when
it sees "*".

Teach check_refname_component() function to allow an asterisk "*"
only when REFNAME_REFSPEC_PATTERN is set in the flags, and drop the
bit after seeing a "*", to ensure that one side of a refspec
contains at most one asterisk.

This will allow us to accept refspecs such as `for/bar*:foo/baz*`.
Any refspec which functioned before shall continue functioning with
the new logic.

Signed-off-by: Jacob Keller &lt;jacob.keller@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>refs: add REF_FORCE_CREATE_REFLOG flag</title>
<updated>2015-07-21T21:08:26Z</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2015-07-21T21:04:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0f2a71d9923b4cf010ad0801eb71ee3666798204'/>
<id>urn:sha1:0f2a71d9923b4cf010ad0801eb71ee3666798204</id>
<content type='text'>
Add a flag to allow forcing the creation of a reflog even if the ref
name and core.logAllRefUpdates setting would not ordinarily cause ref
creation.

In a moment, we will use this to add options to git tag and git
update-ref to force reflog creation.

Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>refs: new public ref function: safe_create_reflog</title>
<updated>2015-07-21T21:07:59Z</updated>
<author>
<name>David Turner</name>
<email>dturner@twopensource.com</email>
</author>
<published>2015-07-21T21:04:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=abd0cd3a3018e1c4e9e4437fb3911d6658e99fec'/>
<id>urn:sha1:abd0cd3a3018e1c4e9e4437fb3911d6658e99fec</id>
<content type='text'>
The safe_create_reflog function creates a reflog, if it does not
already exist.

The log_ref_setup function becomes private and gains a force_create
parameter to force the creation of a reflog even if log_all_ref_updates
is false or the refname is not one of the special refnames.

The new parameter also reduces the need to store, modify, and restore
the log_all_ref_updates global before reflog creation.

In a moment, we will use this to add reflog creation commands to
git-reflog.

Signed-off-by: David Turner &lt;dturner@twopensource.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
