Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Jun 1, 2009
  1. Christian Couder Junio C Hamano

    refs: add a "for_each_replace_ref" function

    chriscool authored gitster committed
    This is some preparation work for the following patches that are using
    the "refs/replace/" ref namespace.
    
    Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 14, 2009
  1. Felipe Contreras Junio C Hamano

    Change prettify_ref to prettify_refname

    felipec authored gitster committed
    In preparation to be used when the ref object is not available
    
    Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
    Acked-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 13, 2009
  1. Bert Wesarg Junio C Hamano

    shorten_unambiguous_ref(): add strict mode

    bertwesarg authored gitster committed
    Add the strict mode of abbreviation to shorten_unambiguous_ref(), i.e. the
    resulting ref won't trigger the ambiguous ref warning.
    
    All users of shorten_unambiguous_ref() still use the loose mode.
    
    Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 12, 2009
  1. Junio C Hamano

    Merge branch 'jk/show-upstream'

    gitster authored
    * jk/show-upstream:
      branch: show upstream branch when double verbose
      make get_short_ref a public function
      for-each-ref: add "upstream" format field
      for-each-ref: refactor refname handling
      for-each-ref: refactor get_short_ref function
Commits on Apr 8, 2009
  1. Jeff King Junio C Hamano

    make get_short_ref a public function

    peff authored gitster committed
    Often we want to shorten a full ref name to something "prettier"
    to show a user. For example, "refs/heads/master" is often shown
    simply as "master", or "refs/remotes/origin/master" is shown as
    "origin/master".
    
    Many places in the code use a very simple formula: skip common
    prefixes like refs/heads, refs/remotes, etc. This is codified in
    the prettify_ref function.
    
    for-each-ref has a more correct (but more expensive) approach:
    consider the ref lookup rules, and try shortening as much as
    possible while remaining unambiguous.
    
    This patch makes the latter strategy globally available as
    shorten_unambiguous_ref.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Apr 5, 2009
  1. Junio C Hamano

    Merge branch 'cc/sha1-bsearch' into HEAD

    gitster authored
    * cc/sha1-bsearch: (95 commits)
      patch-ids: use the new generic "sha1_pos" function to lookup sha1
      sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1
      Update draft release notes to 1.6.3
      GIT 1.6.2.2
      send-email: ensure quoted addresses are rfc2047 encoded
      send-email: correct two tests which were going interactive
      Documentation: git-svn: fix trunk/fetch svn-remote key typo
      Mailmap: Allow empty email addresses to be mapped
      Cleanup warning about known issues in cvsimport documentation
      Documentation: Remove an odd "instead"
      send-email: ask_default should apply to all emails, not just the first
      send-email: don't attempt to prompt if tty is closed
      fix portability problem with IS_RUN_COMMAND_ERR
      Documentation: use "spurious .sp" XSLT if DOCBOOK_SUPPRESS_SP is set
      mailmap: resurrect lower-casing of email addresses
      builtin-clone.c: no need to strdup for setenv
      builtin-clone.c: make junk_pid static
      git-svn: add a double quiet option to hide git commits
      Update draft release notes to 1.6.2.2
      Documentation: push.default applies to all remotes
      ...
Commits on Mar 30, 2009
  1. Christian Couder Junio C Hamano

    refs: add "for_each_ref_in" function to refactor "for_each_*_ref" fun…

    chriscool authored gitster committed
    …ctions
    
    The "for_each_{tag,branch,remote,replace,}_ref" functions are
    redefined in terms of "for_each_ref_in" so that we can lose the
    hardcoded length of prefix strings from the code.
    
    Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Commits on Mar 9, 2009
  1. Junio C Hamano

    Use a common function to get the pretty name of refs

    Daniel Barkalow authored gitster committed
    The result should be consistent between fetch and push, so we ought to
    use the same code in both cases, even though it's short.
    
    Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 11, 2009
  1. Junio C Hamano

    remote prune: warn dangling symrefs

    gitster authored
    If you prune from the remote "frotz" that deleted the ref your tracking
    branch remotes/frotz/HEAD points at, the symbolic ref will become
    dangling.  We used to detect this as an error condition and issued a
    message every time refs are enumerated.
    
    This stops the error message, but moves the warning to "remote prune".
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 20, 2009
  1. Junio C Hamano

    Introduce for_each_recent_reflog_ent().

    gitster authored
    This can be used to scan only the last few kilobytes of a reflog, as a
    cheap optimization when the data you are looking for is likely to be
    found near the end of it.  The caller is expected to fall back to the
    full scan if that is not the case.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 5, 2008
  1. Junio C Hamano

    Allow for having for_each_ref() list extra refs

    Daniel Barkalow authored gitster committed
    These refs can be anything, but they are most likely useful as
    pointing to objects that you know are in the object database but don't
    have any regular refs for. For example, when cloning with --reference,
    the refs in this repository should be listed as objects that we have,
    even though we don't have refs in our newly-created repository for
    them yet.
    
    Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Feb 23, 2008
  1. Junio C Hamano

    refs.c: make close_ref() and commit_ref() non-static

    Brandon Casey authored gitster committed
    This is in preparation to the reflog-expire changes which will
    allow updating the ref after expiring the reflog.
    
    Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jan 2, 2008
  1. Junio C Hamano

    lock_any_ref_for_update(): reject wildcard return from check_ref_format

    gitster authored
    Recent check_ref_format() returns -3 as well as -1 (general
    error) and -2 (less than two levels).  The caller was explicitly
    checking for -1, to allow "HEAD" but still needed to disallow
    bogus refs.
    
    This introduces symbolic constants for the return values from
    check_ref_format() to make them read better and more
    meaningful.  Normal ref creation codepath can still treat
    non-zero return values as errors.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Nov 16, 2007
  1. Junio C Hamano

    refs.c: Remove unused get_ref_sha1()

    Johannes Sixt authored gitster committed
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Sep 5, 2007
  1. jasampler Junio C Hamano

    Function for updating refs.

    jasampler authored gitster committed
    A function intended to be called from builtins updating refs
    by locking them before write, specially those that came from
    scripts using "git update-ref".
    
    [jc: with minor fixups]
    
    Signed-off-by: Carlos Rica <jasampler@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on May 10, 2007
  1. git-update-ref: add --no-deref option for overwriting/detaching ref

    Sven Verdoolaege authored Junio C Hamano committed
    git-checkout is also adapted to make use of this new option
    instead of the handcrafted command sequence.
    
    Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Apr 10, 2007
  1. Linus Torvalds

    Add 'resolve_gitlink_ref()' helper function

    torvalds authored Junio C Hamano committed
    This new function resolves a ref in *another* git repository.  It's
    named for its intended use: to look up the git link to a subproject.
    
    It's not actually wired up to anything yet, but we're getting closer to
    having fundamental plumbing support for "links" from one git directory
    to another, which is the basis of subproject support.
    
    [jc: amended a FILE* leak]
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Feb 3, 2007
  1. scan reflogs independently from refs

    Nicolas Pitre authored Junio C Hamano committed
    Currently, the search for all reflogs depends on the existence of
    corresponding refs under the .git/refs/ directory.  Let's scan the
    .git/logs/ directory directly instead.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jan 28, 2007
  1. lock_ref_sha1_basic(): remember the original name of a ref when resol…

    Nicolas Pitre authored Junio C Hamano committed
    …ving it
    
    A ref might be pointing to another ref but only the name of the last ref
    is remembered.  Let's remember about the first name as well.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. make reflog filename independent from struct ref_lock

    Nicolas Pitre authored Junio C Hamano committed
    This allows for ref_log_write() to be used in a more flexible way,
    and is needed for future changes.
    
    This is only code reorg with no behavior change.
    
    Signed-off-by: Nicolas Pitre <nico@cam.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jan 20, 2007
  1. Extend read_ref_at() to be usable from places other than sha1_name.

    Junio C Hamano authored
    You can pass an extra argument to the function to receive the
    reflog message information.  Also when the log does not go back
    beyond the point the user asked, the cut-off time and count are
    given back to the caller for emitting the error messages as
    appropriately.
    
    We could later add configuration for get_sha1_basic() to make it
    an error instead of it being just a warning.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jan 9, 2007
  1. dscho

    Sanitize for_each_reflog_ent()

    dscho authored Junio C Hamano committed
    It used to ignore the return value of the helper function; now, it
    expects it to return 0, and stops iteration upon non-zero return
    values; this value is then passed on as the return value of
    for_each_reflog_ent().
    
    Further, it makes no sense to force the parsing upon the helper
    functions; for_each_reflog_ent() now calls the helper function with
    old and new sha1, the email, the timestamp & timezone, and the message.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Dec 21, 2006
  1. add for_each_reflog_ent() iterator

    Junio C Hamano authored
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Dec 6, 2006
  1. git-branch: let caller specify logmsg

    Lars Hjemli authored Junio C Hamano committed
    This changes the signature of rename_ref() in refs.[hc] to include a
    logmessage for the reflogs.
    
    Also, builtin-branch.c is modified to provide a proper logmessage + call
    setup_ident() before any logmessages are written.
    
    Signed-off-by: Lars Hjemli <hjemli@gmail.com>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. git-branch: add options and tests for branch renaming

    Lars Hjemli authored Junio C Hamano committed
    Extend git-branch with the following options:
    
      git-branch -m|-M [<oldbranch>] newbranch
    
    The -M variation is required to force renaming over an exsisting
    branchname.
    
    This also indroduces $GIT_DIR/RENAME_REF which is a "metabranch"
    used when renaming branches. It will always hold the original sha1
    for the latest renamed branch.
    
    Additionally, if $GIT_DIR/logs/RENAME_REF exists, all branch rename
    events are logged there.
    
    Finally, some testcases are added to verify the new options.
    
    Signed-off-by: Lars Hjemli <hjemli@gmail.com>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Nov 22, 2006
  1. Store peeled refs in packed-refs (take 2).

    Junio C Hamano authored
    This fixes the previous implementation which failed to optimize
    repositories with tons of lightweight tags.  The updated
    packed-refs format begins with "# packed-refs with:" line that
    lists the kind of extended data the file records.  Currently,
    there is only one such extension defined, "peeled".  This stores
    the "peeled tag" on a line that immediately follows a line for a
    tag object itself in the format "^<sha-1>".
    
    The header line itself and any extended data are ignored by
    older implementation, so packed-refs file generated with this
    version can still be used by older git.  packed-refs made by
    older git can of course be used with this version.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Nov 20, 2006
  1. Store peeled refs in packed-refs file.

    Junio C Hamano authored
    This would speed up "show-ref -d" in a repository with mostly
    packed tags.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Oct 6, 2006
  1. ref-log: allow ref@{count} syntax.

    Junio C Hamano authored
    Often I find myself wanting to say 'tip of "next" before I
    merged the last three topics'.  Now I can say that with:
    
    	git log next@{3}..next
    
    Since small integers alone are invalid input strings to
    approxidate, there is no fear of confusion.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 27, 2006
  1. Clean-up lock-ref implementation

    Junio C Hamano authored
    This drops "mustexist" parameter lock_ref_sha1() and lock_any_ref_forupdate()
    functions take.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 21, 2006
  1. Tell between packed, unpacked and symbolic refs.

    Junio C Hamano authored
    This adds a "int *flag" parameter to resolve_ref() and makes
    for_each_ref() family to call callback function with an extra
    "int flag" parameter.  They are used to give two bits of
    information (REF_ISSYMREF and REF_ISPACKED) about the ref.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. Add callback data to for_each_ref() family.

    Junio C Hamano authored
    This is a long overdue fix to the API for for_each_ref() family
    of functions.  It allows the callers to specify a callback data
    pointer, so that the caller does not have to use static
    variables to communicate with the callback funciton.
    
    The updated for_each_ref() family takes a function of type
    
    	int (*fn)(const char *, const unsigned char *, void *)
    
    and a void pointer as parameters, and calls the function with
    the name of the ref and its SHA-1 with the caller-supplied void
    pointer as parameters.
    
    The commit updates two callers, builtin-name-rev.c and
    builtin-pack-refs.c as an example.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Sep 18, 2006
  1. Enable the packed refs file format

    Linus Torvalds authored Junio C Hamano committed
    This actually "turns on" the packed ref file format, now that the
    infrastructure to do so sanely exists (ie notably the change to make the
    reference reading logic take refnames rather than pathnames to the loose
    objects that no longer necessarily even exist).
    
    In particular, when the ref lookup hits a refname that has no loose file
    associated with it, it falls back on the packed-ref information. Also, the
    ref-locking code, while still using a loose file for the locking itself
    (and _creating_ a loose file for the new ref) no longer requires that the
    old ref be in such an unpacked state.
    
    Finally, this does a minimal hack to git-checkout.sh to rather than check
    the ref-file directly, do a "git-rev-parse" on the "heads/$refname".
    That's not really wonderful - we should rather really have a special
    routine to verify the names as proper branch head names, but it is a
    workable solution for now.
    
    With this, I can literally do something like
    
    	git pack-refs
    	find .git/refs -type f -print0 | xargs -0 rm -f --
    
    and the end result is a largely working repository (ie I've done two
    commits - which creates _one_ unpacked ref file - done things like run
    "gitk" and "git log" etc, and it all looks ok).
    
    There are probably things missing, but I'm hoping that the missing things
    are now of the "small and obvious" kind, and that somebody else might want
    to start looking at this too. Hint hint ;)
    
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on Jun 6, 2006
  1. ref-log: style fixes.

    Junio C Hamano authored
    A few style fixes to get the code in line with the rest.
    
     - asterisk to make a type a pointer to something goes in front
       of the variable, not at the end of the base type.
       E.g. a pointer to an integer is "int *ip", not "int* ip".
    
     - open parenthesis for function parameter list, unlike
       syntactic constructs, comes immediately after the function
       name.  E.g. "if (foo) bar();" not "if(foo) bar ();".
    
     - "else" does not come on the same line as the closing brace of
       corresponding "if".
    
    The style is mostly a matter of personal taste, and people may
    disagree, but consistency is important.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
  2. refs.c: convert it to use lockfile interface.

    Junio C Hamano authored
    This updates the ref locking code to use creat-rename locking
    code we use for the index file, so that it can borrow the code
    to clean things up upon signals and program termination.
    
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Commits on May 19, 2006
  1. Shawn O. Pearce

    Force writing ref if it doesn't exist.

    spearce authored Junio C Hamano committed
    Normally we try to skip writing a ref if its value hasn't changed
    but in the special case that the ref doesn't exist but the new
    value is going to be 0{40} then force writing the ref anyway.
    
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <junkio@cox.net>
Something went wrong with that request. Please try again.