summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* bisect: fix "git bisect skip <commit>" and add tests casesChristian Couder2008-12-022-3/+20
| | | | | | | | | | | | | | | | | The patch that allows "git bisect skip" to be passed a range of commits using the "<commit1>..<commit2>" notation is flawed because it introduces a regression when it was passed a simple rev or commit. "git bisect skip <commit>" doesn't work any more, because <commit> is quoted but not properly unquoted. This patch fixes that and add tests cases to better check when it is passed commits and range of commits. While at it, this patch also properly quotes the non range arguments using the "sq" function. Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
* Update comment on gitweb_check/get_featureGiuseppe Bilotta2008-12-021-1/+3
| | | | | | | | | This is taken from a patch from Giuseppe but unfortunately it came too late to replace the series that was already on "next". The comment he updated here is better than the version we had previously, so I am cherry-picking this bit not to lose it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'gb/gitweb-feature'Junio C Hamano2008-12-021-16/+32
|\ | | | | | | | | | | | | * gb/gitweb-feature: gitweb: make gitweb_check_feature a boolean wrapper gitweb: rename gitweb_check_feature to gitweb_get_feature gitweb: fix 'ctags' feature check and others
| * gitweb: make gitweb_check_feature a boolean wrapperGiuseppe Bilotta2008-11-301-20/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The gitweb_get_feature() function retrieves the configuration parameters for the feature (such as the list of snapshot formats or the list of additional actions), but it is very often used to see if feature is enabled (which is returned as the first element in the list). Because accepting the returned list in the scalar context by mistake yields the number of elements in the array, which is non-zero in all cases, such a mistake would result in a bug for the latter use, with disabled features appearing enabled. All existing callers that call the function for this purpose assign the return value in the list context to retrieve the first element, but that is only because we fixed careless callers recently. This adds gitweb_check_feature() as a wrapper to gitweb_get_feature() that can be called safely in the scalar context to see if a feature is enabled to reduce the risk of future bugs. Callers of "get" that use the call only to see if the feature is enabled are updated to call this wrapper. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * gitweb: rename gitweb_check_feature to gitweb_get_featureJunio C Hamano2008-11-301-23/+23
| | | | | | | | | | | | | | | | | | The function is about retrieving the configuration parameter list for the feature. A more robust way to check if a feature is enabled will be introduced in the next patch, and the function will be called gitweb_check_feature. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * gitweb: fix 'ctags' feature check and othersJunio C Hamano2008-11-301-7/+7
| | | | | | | | | | | | | | | | | | gitweb_check_feature() function is to retrieve the configuration parameter list and calling it in the scalar context does not give its first element that tells if the feature is enabled. This fixes all the existing callers to call the function correctly in the list context. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge git://repo.or.cz/git-guiJunio C Hamano2008-12-021-16/+27
|\ \ | | | | | | | | | | | | * git://repo.or.cz/git-gui: git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.
| * | git-gui: Teach start_push_anywhere_action{} to notice when remote is a mirror.Mark Burton2008-12-021-16/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | When the destination repository is a mirror, this function goofed by still passing a refspec to git-push. Now it notices that the remote is a mirror and holds the refspec. Signed-off-by: Mark Burton <markb@ordern.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano2008-12-022-17/+55
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/gitk/gitk: gitk: Add a menu option to start git gui gitk: Make line origin search update the busy status gitk: Update German translation gitk: Fix bug in accessing undefined "notflag" variable gitk: Highlight only when search type is "containing:". gitk: Fix context menu items for generating diffs when in tree mode
| * | | gitk: Add a menu option to start git guiAlexander Gavrilov2008-12-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Git gui already has menu commands to start gitk, and this makes the relation symmetric. [paulus@samba.org - changed "Git Gui" in the menu item to "git gui"] Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Make line origin search update the busy statusAlexander Gavrilov2008-12-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the 'show origin of this line' feature does not update the status field of the gitk window, so it is not evident that any processing is going on. It may seem at first that clicking the item had no effect. This commit adds calls to set and clear the busy status with an appropriate title, similar to other search commands. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Update German translationChristian Stimming2008-12-021-8/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This takes into account the most recent po file merge. Signed-off-by: Christian Stimming <stimming@tuhh.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Fix bug in accessing undefined "notflag" variablePaul Mackerras2008-12-021-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As pointed out by Johannes Sixt and Alexander Gavrilov, commit 2958228430b63f2e38c55519d1f98d8d6d9e23f3 ("gitk: Fix switch statement in parseviewargs") exposed a latent bug in that $notflag was never initialized. Since it isn't used either, this removes it entirely. Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Highlight only when search type is "containing:".Paul Mackerras2008-12-021-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the search type is "touching paths" or "adding/removing string", it's not very useful to highlight instances of the search string in the commit message, headline or author name, so this disables the highlighting in those cases. This was suggested by Mark Burton <markb@ordern.com>, but the implementation is different to his patch, which tested $gdttype at each place where $markingmatches was tested. Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Fix context menu items for generating diffs when in tree modePaul Mackerras2008-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if you invoke the "diff this -> selected" or "diff selected -> this" and gitk is in "Tree" mode rather than "Patch" mode, the diff display pane will just show the header but not the actual diff, unless gitk has done the diff before and thus has the list of files that differ. This was because the logic in gettreediffline that checked whether we had moved on to doing something else checked the mode (Tree or Patch) before checking whether the ids we're diffing had changed. This fixes it. The new logic in gettreediffline is slightly hacky and relies on the fact that the Tree/Patch mode only applies when we're looking at a single commit, not at the diff between two commits. Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | GIT 1.6.1-rc1v1.6.1-rc1Junio C Hamano2008-12-011-4/+15
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Include git-gui--askpass in git-gui RPM packageJunio C Hamano2008-12-011-0/+1
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano2008-11-301-93/+157
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/gitk/gitk: gitk: Avoid handling the Return key twice in Add Branch gitk: Show local changes properly when we have a path limit gitk: Fix switch statement in parseviewargs gitk: Index line[hnd]tag arrays by id rather than row number
| * | | gitk: Avoid handling the Return key twice in Add BranchAlexander Gavrilov2008-11-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 63767d5fb8fe236d8fdeba44297ac925701b27a0. A similar change was made as part of commit 76f15947af7, that added bindings to all dialogs, and this duplication causes mkbrgo to be called twice, the second time after the window has been destroyed. As a result, an error window appears when the code tries to access widgets. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Show local changes properly when we have a path limitPaul Mackerras2008-11-181-22/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since gitk looks for the HEAD commit to attach the fake commits for local changes to, we can miss out on seeing the fake commits if we have a path limit and the HEAD commit doesn't alter any of the files in the path limit. This fixes it by running git rev-list -1 $head -- $paths if we have a path limit, and taking the result of that as the commit to attach the fake commits to. This means that we can be attaching the fake commits to a different commit in each view, so we use a new $viewmainhead($view) for that. This also fixes a buglet where updatecommits would only fix up the fake commits if the HEAD changed since the last call to updatecommits, whereas it should fix them up if the HEAD has changed since this view was last created or updated. Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Fix switch statement in parseviewargsPaul Mackerras2008-11-181-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Tcl, a comment in a switch command where a pattern would be expected doesn't do what one would expect, so this moves the comments inside the actions. Doing that shows up an extra "-" which this also removes. With this, --merge is now handled properly. Signed-off-by: Paul Mackerras <paulus@samba.org>
| * | | gitk: Index line[hnd]tag arrays by id rather than row numberPaul Mackerras2008-11-151-59/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies things a bit and is better because ids are stable but row numbers aren't. It also means we can avoid one [rowofcommit] call. Signed-off-by: Paul Mackerras <paulus@samba.org>
* | | | Merge git://repo.or.cz/git-guiJunio C Hamano2008-11-305-1533/+4243
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | * git://repo.or.cz/git-gui: git-gui: update Japanese translation git-gui: french translation update Updated Swedish translation (514t0f0u). git gui: update Italian translation Update Hungarian translation. 100% completed.
| * | | git-gui: update Japanese translationNanako Shiraishi2008-11-261-294/+825
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | git-gui: french translation updateChristian Couder2008-11-231-297/+827
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | Updated Swedish translation (514t0f0u).Peter Krefting2008-11-211-310/+839
| | | | | | | | | | | | | | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | git gui: update Italian translationMichele Ballabio2008-11-191-295/+834
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | Update Hungarian translation. 100% completed.Miklos Vajna2008-11-171-337/+918
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | | | send-email: do not reverse the command line argumentsJunio C Hamano2008-11-302-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The loop picks elements from @ARGV one by one, sifts them into arguments meant for format-patch and the script itself, and pushes them to @files and @rev_list_opts arrays. Pick elements from @ARGV starting at the beginning using shift, instead of at the end using pop, as push appends them to the end of the array. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'maint'Junio C Hamano2008-11-302-1/+23
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | * maint: Update draft release notes to 1.6.0.5 generate-cmdlist.sh: avoid selecting synopsis at wrong place
| * | | Update draft release notes to 1.6.0.5Junio C Hamano2008-11-301-0/+22
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | Merge branch 'st/maint-tag' into maintJunio C Hamano2008-11-302-7/+23
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * st/maint-tag: tag: Add more tests about mixing incompatible modes and options tag: Check that options are only allowed in the appropriate mode
| * \ \ \ Merge branch 'mk/maint-cg-push' into maintJunio C Hamano2008-11-303-5/+75
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * mk/maint-cg-push: git push: Interpret $GIT_DIR/branches in a Cogito compatible way
| * | | | | generate-cmdlist.sh: avoid selecting synopsis at wrong placeNguyễn Thái Ngọc Duy2008-11-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In "common" man pages there is luckily no "NAME" anywhere except at beginning of documents. If there is another "NAME", sed could mis-select it and lead to common-cmds.h corruption. So better nail it at beginning of line, which would reduce corruption chance. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | | Merge branch 'cc/bisect-skip'Junio C Hamano2008-11-271-1/+18
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cc/bisect-skip: bisect: teach "skip" to accept special arguments like "A..B"
| * | | | | | bisect: teach "skip" to accept special arguments like "A..B"Christian Couder2008-11-251-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current "git bisect skip" syntax is "git bisect skip [<rev>...]" so it's already possible to skip a range of revisions using something like: $ git bisect skip $(git rev-list A..B) where A and B are the bounds of the range we want to skip. This patch teaches "git bisect skip" to accept: $ git bisect skip A..B as an abbreviation for the former command. This is done by checking each argument to see if it contains two dots one after the other ('..'), and by expending it using "git rev-list" if that is the case. Note that this patch will not make "git bisect skip" accept all that "git rev-list" accepts, as things like "^A B" for exemple will not work. But things like "A B..C D E F.. ..G H...I" should work as expected. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | | | Merge branch 'js/mingw-rename-fix'Junio C Hamano2008-11-271-3/+12
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * js/mingw-rename-fix: compat/mingw.c: Teach mingw_rename() to replace read-only files
| * | | | | | | compat/mingw.c: Teach mingw_rename() to replace read-only filesJohannes Sixt2008-11-231-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On POSIX, rename() can replace files that are not writable. On Windows, however, read-only files cannot be replaced without additional efforts: We have to make the destination writable first. Since the situations where the destination is read-only are rare, we do not make the destination writable on every invocation, but only if the first try to rename a file failed with an "access denied" error. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | | | | Merge branch 'st/levenshtein'Junio C Hamano2008-11-271-1/+38
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * st/levenshtein: Document levenshtein.c Fix deletion of last character in levenshtein distance
| * | | | | | | | Document levenshtein.cJohannes Schindelin2008-11-231-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | Fix deletion of last character in levenshtein distanceSamuel Tardieu2008-11-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this change, "git tags" will not suggest "git tag" (it will only suggest "git status"), and "git statusx" will not suggest anything. Signed-off-by: Samuel Tardieu <sam@rfc1149.net> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | | | | | Merge branch 'cr/remote-update-v'Junio C Hamano2008-11-271-2/+6
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cr/remote-update-v: git-remote: add verbose mode to git remote update
| * | | | | | | | | git-remote: add verbose mode to git remote updateCheng Renquan2008-11-181-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass the verbose mode parameter to the underlying fetch command. $ ./git remote -v update Updating origin From git://git.kernel.org/pub/scm/git/git = [up to date] html -> origin/html = [up to date] maint -> origin/maint = [up to date] man -> origin/man = [up to date] master -> origin/master = [up to date] next -> origin/next = [up to date] pu -> origin/pu = [up to date] todo -> origin/todo Signed-off-by: Cheng Renquan <crquan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | | | | | | | Merge branch 'rs/strbuf-expand'Junio C Hamano2008-11-279-204/+87
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rs/strbuf-expand: remove the unused files interpolate.c and interpolate.h daemon: deglobalize variable 'directory' daemon: inline fill_in_extra_table_entries() daemon: use strbuf_expand() instead of interpolate() merge-recursive: use strbuf_expand() instead of interpolate() add strbuf_expand_dict_cb(), a helper for simple cases
| * | | | | | | | | | remove the unused files interpolate.c and interpolate.hRené Scharfe2008-11-233-130/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | | | daemon: deglobalize variable 'directory'René Scharfe2008-11-231-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the global variable 'directory' and pass it as a parameter of the two functions that use it instead, (almost) restoring their interface to how it was before 49ba83fb67d9e447b86953965ce5f949c6a93b81. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | | | daemon: inline fill_in_extra_table_entries()René Scharfe2008-11-231-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having fill_in_extra_table_entries() as a separate function has no advantage -- a function with no parameters and return values might as well be an anonymous block of code. Its name still refers to the table of interpolate() which has been removed earlier, so it's better to inline it at its only call site. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | | | daemon: use strbuf_expand() instead of interpolate()René Scharfe2008-11-231-55/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | | | merge-recursive: use strbuf_expand() instead of interpolate()René Scharfe2008-11-232-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | | | | | | | add strbuf_expand_dict_cb(), a helper for simple casesRené Scharfe2008-11-233-0/+28
| | |/ / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new callback function strbuf_expand_dict_cb() can be used together with strbuf_expand() if there is only a small number of placeholders for static replacement texts. It expects its dictionary as an array of placeholder+value pairs as context parameter, terminated by an entry with the placeholder member set to NULL. The new helper is intended to aid converting the remaining calls of interpolate(). strbuf_expand() is smaller, more flexible and can be used to go faster than interpolate(), so it should replace the latter. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>