Commit Graph

30711 Commits

Author SHA1 Message Date
René Scharfe
13baa9fe86 branch: show targets of deleted symrefs, not sha1s
git branch reports the abbreviated hash of the head commit of
a deleted branch to make it easier for a user to undo the
operation.  For symref branches this doesn't help.  Print the
symref target instead for them.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 14:36:17 -07:00
René Scharfe
0fe700e311 branch: skip commit checks when deleting symref branches
Before a branch is deleted, we check that it points to a valid
commit.  With -d we also check that the commit is a merged; this
check is not done with -D.

The reason for that is that commits pointed to by branches should
never go missing; if they do then something broke and it's better
to stop instead of adding to the mess.  And a non-merged commit
may contain changes that are worth preserving, so we require the
stronger option -D instead of -d to get rid of them.

If a branch consists of a symref, these concerns don't apply.
Deleting such a branch can't make a commit become unreferenced,
so we don't need to check if it is merged, or even if it is
actually a valid commit.  Skip them in that case.  This allows
us to delete dangling symref branches.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 14:36:17 -07:00
René Scharfe
566c7707db branch: delete symref branch, not its target
If a branch that is to be deleted happens to be a symref to another
branch, the current code removes the targeted branch instead of the
one it was called for.

Change this surprising behaviour and delete the symref branch
instead.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 14:36:16 -07:00
René Scharfe
22ed792753 branch: factor out delete_branch_config()
Provide a small helper function for deleting branch config sections.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 14:36:16 -07:00
René Scharfe
f5d0e162c4 branch: factor out check_branch_commit()
Move the code to perform checks on the tip commit of a branch
to its own function.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 14:36:16 -07:00
Jeff King
08ad56f3f0 strbuf: always return a non-NULL value from strbuf_detach
The current behavior is to return NULL when strbuf did not
actually allocate a string. This can be quite surprising to
callers, though, who may feed the strbuf from arbitrary data
and expect to always get a valid value.

In most cases, it does not make a difference because calling
any strbuf function will cause an allocation (even if the
function ends up not inserting any data). But if the code is
structured like:

  struct strbuf buf = STRBUF_INIT;
  if (some_condition)
	  strbuf_addstr(&buf, some_string);
  return strbuf_detach(&buf, NULL);

then you may or may not return NULL, depending on the
condition. This can cause us to segfault in http-push
(when fed an empty URL) and in http-backend (when an empty
parameter like "foo=bar&&" is in the $QUERY_STRING).

This patch forces strbuf_detach to allocate an empty
NUL-terminated string when it is called on a strbuf that has
not been allocated.

I investigated all call-sites of strbuf_detach. The majority
are either not affected by the change (because they call a
strbuf_* function unconditionally), or can handle the empty
string just as easily as NULL.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-18 09:40:15 -07:00
Junio C Hamano
8ead1bfe11 git-gui 0.17.0
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.7 (MingW32)
 
 iQCVAwUAUH8cCGB90JXwhOSJAQI2ywP+PPdCYqxkpGzYYQkf/ZU3JFBqJqSxQE6i
 V4ROiW+iHaS5EqWt7GvXc0G5M8b+7M0TMtCjwozSD1ne+Ced+ZOfxqSUOgGQL2XD
 Vc4nHsITLNkhlSYlRP6VqXLsuW47iq+Hw/LQcSBvG79A3ooSC1QktfKV2JmtqIxr
 i6lfGwM7yT4=
 =zifn
 -----END PGP SIGNATURE-----

Merge tag 'gitgui-0.17.0' of git://repo.or.cz/git-gui

git-gui 0.17.0

* tag 'gitgui-0.17.0' of git://repo.or.cz/git-gui:
  git-gui 0.17
  git-gui: Don't prepend the prefix if value looks like a full path
  git-gui: Detect full path when parsing arguments
  git-gui: remove .git/CHERRY_PICK_HEAD after committing
  git-gui: Fix a loose/lose mistake
  git-gui: Fix semi-working shortcuts for unstage and revert
  git-gui: de.po: translate "remote" as "extern"
  git-gui: de.po: translate "bare" as "bloß"
  git-gui: de.po: consistently add untranslated hook names within braces
  git-gui: preserve commit messages in utf-8
  git-gui: open console when using --trace on windows
  git-gui: fix a typo in po/ files
  git-gui: Use PWD if it exists on Mac OS X
  git-gui: fix git-gui crash due to uninitialized variable
2012-10-17 15:55:46 -07:00
Pat Thoyts
f6dd784ed4 git-gui 0.17
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
2012-10-17 21:57:29 +01:00
Andrew Wong
df46eda388 git-gui: Don't prepend the prefix if value looks like a full path
When argument parsing fails to detect a file name, "git-gui" will try to
use the previously detected "head" as the file name. We should avoid
prepending the prefix if "head" looks like a full path.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
2012-10-17 21:47:50 +01:00
Andrew Wong
e3d06ca93e git-gui: Detect full path when parsing arguments
When running "git-gui blame" from a subfolder (which means prefix is
non-empty), if we pass a full path as argument, the argument parsing
will fail to recognize the argument as a file name, because prefix is
prepended to the argument.

This patch handles that scenario by adding an additional branch that
checks the file name without using the prefix.

Signed-off-by: Andrew Wong <andrew.kw.w@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
2012-10-17 21:47:49 +01:00
Junio C Hamano
87a5461fa7 Git 1.8.0-rc3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17 10:39:44 -07:00
Junio C Hamano
3d0a2d654f Merge git://github.com/git-l10n/git-po
* git://github.com/git-l10n/git-po:
  l10n: vi.po: update from v1.8.0-rc2-4-g42e55
  l10n: Update Swedish translation (1964t0f0u)
2012-10-17 10:37:40 -07:00
Junio C Hamano
d2bfef22e4 Sync with 1.7.12.4 2012-10-17 10:37:32 -07:00
Junio C Hamano
7e2010537e Git 1.7.12.4
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17 10:36:42 -07:00
Junio C Hamano
e98fa647aa Merge branch 'jk/maint-http-half-auth-push' into maint
* jk/maint-http-half-auth-push:
  http: fix segfault in handle_curl_result
2012-10-17 10:29:24 -07:00
Junio C Hamano
5a77ff74ba Merge branch 'rr/git-uri-doc' into maint
* rr/git-uri-doc:
  Git url doc: mark ftp/ftps as read-only and deprecate them
2012-10-17 10:28:56 -07:00
Junio C Hamano
c15fadab65 Merge branch 'bw/cp-a-is-gnuism' into maint
* bw/cp-a-is-gnuism:
  tests: "cp -a" is a GNUism
2012-10-17 10:28:48 -07:00
Junio C Hamano
530d71011e Merge branch 'nd/doc-ignore' into maint
* nd/doc-ignore:
  gitignore.txt: suggestions how to get literal # or ! at the beginning
2012-10-17 10:28:42 -07:00
Junio C Hamano
352611fc2c Merge branch 'jc/doc-long-options' into maint
* jc/doc-long-options:
  gitcli: parse-options lets you omit tail of long options
2012-10-17 10:28:34 -07:00
Junio C Hamano
26c21f8ec6 Merge branch 'jc/maint-t1450-fsck-order-fix' into maint
* jc/maint-t1450-fsck-order-fix:
  t1450: the order the objects are checked is undefined
2012-10-17 10:28:19 -07:00
Junio C Hamano
ff3ec8a9a2 Merge branch 'rr/test-use-shell-path-not-shell' into maint
* rr/test-use-shell-path-not-shell:
  test-lib: use $SHELL_PATH, not $SHELL
2012-10-17 10:27:28 -07:00
Junio C Hamano
5178ee1ea2 Merge branch 'rr/test-make-sure-we-have-git' into maint
* rr/test-make-sure-we-have-git:
  t/test-lib: make sure Git has already been built
2012-10-17 10:27:21 -07:00
Junio C Hamano
756583f432 Merge branch 'po/maint-docs' into maint
* po/maint-docs:
  Doc branch: show -vv option and alternative
  Doc clean: add See Also link
  Doc add: link gitignore
  Doc: separate gitignore pattern sources
  Doc: shallow clone deepens _to_ new depth
2012-10-17 10:27:10 -07:00
Junio C Hamano
8c4bcd34bd Merge branch 'jc/ll-merge-binary-ours' into maint
* jc/ll-merge-binary-ours:
  ll-merge: warn about inability to merge binary files only when we can't
  attr: "binary" attribute should choose built-in "binary" merge driver
  merge: teach -Xours/-Xtheirs to binary ll-merge driver
2012-10-17 10:26:51 -07:00
Junio C Hamano
19100d3f7d Merge branch 'db/doc-custom-xmlto' into maint
* db/doc-custom-xmlto:
  Documentation/Makefile: Allow custom XMLTO binary
2012-10-17 10:25:37 -07:00
Johannes Sixt
84adb64154 maybe_flush_or_die: move a too-loose Windows specific error
check to compat

Commit b2f5e268 (Windows: Work around an oddity when a pipe with no reader
is written to) introduced a check for EINVAL after fflush() to fight
spurious "Invalid argument" errors on Windows when a pipe was broken. But
this check may hide real errors on systems that do not have the this odd
behavior. Introduce an fflush wrapper in compat/mingw.* so that the treatment
is only applied on Windows.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-17 00:33:42 -07:00
Jiang Xin
b408887045 Merge branch 'master' of https://github.com/nafmo/git-l10n-sv
* 'master' of https://github.com/nafmo/git-l10n-sv:
  l10n: Update Swedish translation (1964t0f0u)
2012-10-17 09:38:30 +08:00
Jiang Xin
0303abccea Merge branch 'master' of git://github.com/vnwildman/git
* 'master' of git://github.com/vnwildman/git:
  l10n: vi.po: update from v1.8.0-rc2-4-g42e55
2012-10-17 09:37:30 +08:00
Tran Ngoc Quan
34a166439a l10n: vi.po: update from v1.8.0-rc2-4-g42e55
* translate 3 new messages
* review quotes

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-10-17 08:15:28 +07:00
Thomas Ackermann
d25c58ce43 Documentation/RelNotes: remove "updated up to this revision" markers
These were used to keep track of the last commit a release notes
entry was written for, and should have been removed when cutting
the final release.

Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-16 15:35:00 -07:00
Junio C Hamano
4a182f6174 Update draft release notes to 1.8.0
We are almost there...

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-16 13:27:23 -07:00
Junio C Hamano
053a08f5bb Merge branch 'jk/maint-http-half-auth-push'
Fixes a regression in maint-1.7.11 (v1.7.11.7), maint (v1.7.12.1)
and master (v1.8.0-rc0).

* jk/maint-http-half-auth-push:
  http: fix segfault in handle_curl_result
2012-10-16 11:44:37 -07:00
Peter Krefting
8f69cccbe4 l10n: Update Swedish translation (1964t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2012-10-16 08:38:11 +01:00
Jiang Xin
9306b5b9a3 l10n: Update git.pot (3 new, 6 removed messages)
This po/git.pot update is generated from v1.8.0-rc2-4-g42e55.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2012-10-16 08:39:10 +08:00
Jiang Xin
6de030dd46 Merge branch 'master' of git://github.com/vnwildman/git
* 'master' of git://github.com/vnwildman/git:
  l10n: vi.po: update translation upto cc76011
2012-10-16 08:31:22 +08:00
Tran Ngoc Quan
03c82da32e l10n: vi.po: update translation upto cc76011
* translate all new messages (100%)
* review some others

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2012-10-15 14:35:49 +07:00
Junio C Hamano
42e55a5f57 Merge branch 'maint'
* maint:
  Fix spelling error in post-receive-email hook
2012-10-13 23:05:54 -07:00
Richard Fearn
7703477ab9 Fix spelling error in post-receive-email hook
Signed-off-by: Richard Fearn <richardfearn@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-13 21:50:14 -07:00
Junio C Hamano
fc364c767a Merge branch 'maint'
* maint:
  gitweb.cgi: fix "comitter_tz" typo in feed
2012-10-12 11:36:06 -07:00
Jeff King
1960897ebc http: do not set up curl auth after a 401
When we get an http 401, we prompt for credentials and put
them in our global credential struct. We also feed them to
the curl handle that produced the 401, with the intent that
they will be used on a retry.

When the code was originally introduced in commit 42653c0,
this was a necessary step. However, since dfa1725, we always
feed our global credential into every curl handle when we
initialize the slot with get_active_slot. So every further
request already feeds the credential to curl.

Moreover, accessing the slot here is somewhat dubious. After
the slot has produced a response, we don't actually control
it any more.  If we are using curl_multi, it may even have
been re-initialized to handle a different request.

It just so happens that we will reuse the curl handle within
the slot in such a case, and that because we only keep one
global credential, it will be the one we want.  So the
current code is not buggy, but it is misleading.

By cleaning it up, we can remove the slot argument entirely
from handle_curl_result, making it much more obvious that
slots should not be accessed after they are marked as
finished.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12 09:45:15 -07:00
Jeff King
abf8df869c remote-curl: do not call run_slot repeatedly
Commit b81401c (http: prompt for credentials on failed POST)
taught post_rpc to call run_slot in a loop in order to retry
a request after asking the user for credentials. However,
after a call to run_slot we will have called
finish_active_slot. This means we have released the slot,
and we should no longer look at it.

As it happens, this does not cause any bugs in the current
code, since we know that we are not using curl_multi in this
code path, and therefore nobody will have taken over our
slot in the meantime. However, it is good form to actually
call get_active_slot again. It also future proofs us against
changes in the http code.

We can do this by jumping back to a retry label at the top
of our function. We just need to reorder a few setup lines
that should not be repeated; everything else within the loop
is either idempotent, needs to be repeated, or in a path we
do not follow (e.g., we do not even try when large_request
is set, because we don't know how much data we might have
streamed from our helper program).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12 09:45:13 -07:00
Jeff King
188923f0d1 http: fix segfault in handle_curl_result
When we create an http active_request_slot, we can set its
"results" pointer back to local storage. The http code will
fill in the details of how the request went, and we can
access those details even after the slot has been cleaned
up.

Commit 8809703 (http: factor out http error code handling)
switched us from accessing our local results struct directly
to accessing it via the "results" pointer of the slot. That
means we're accessing the slot after it has been marked as
finished, defeating the whole purpose of keeping the results
storage separate.

Most of the time this doesn't matter, as finishing the slot
does not actually clean up the pointer. However, when using
curl's multi interface with the dumb-http revision walker,
we might actually start a new request before handing control
back to the original caller. In that case, we may reuse the
slot, zeroing its results pointer, and leading the original
caller to segfault while looking for its results inside the
slot.

Instead, we need to pass a pointer to our local results
storage to the handle_curl_result function, rather than
relying on the pointer in the slot struct. This matches what
the original code did before the refactoring (which did not
use a separate function, and therefore just accessed the
results struct directly).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12 09:42:31 -07:00
Dylan Alex Simon
debf29dc29 gitweb.cgi: fix "comitter_tz" typo in feed
gitweb's feeds sometimes contained committer timestamps in the wrong timezone
due to a misspelling.

Signed-off-by: Dylan Simon <dylan@dylex.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12 08:43:12 -07:00
Nguyễn Thái Ngọc Duy
55c61688ea grep: stop looking at random places for .gitattributes
grep searches for .gitattributes using "name" field in struct
grep_source but that field is not real on-disk path name. For example,
"grep pattern rev" fills the field with "rev:path", and Git looks for
.gitattributes in the (non-existent but exploitable) path "rev:path"
instead of "path".

This patch passes real paths down to grep_source_load_driver() when:

 - grep on work tree
 - grep on the index
 - grep a commit (or a tag if it points to a commit)

so that these cases look up .gitattributes at proper paths.
.gitattributes lookup is disabled in all other cases.

Initial-work-by: Jeff King <peff@peff.net>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-12 08:24:44 -07:00
David Aguilar
3facc60031 mergetools/p4merge: Handle "/dev/null"
p4merge does not properly handle the case where "/dev/null"
is passed as a filename.

Work it around by creating a temporary file for this purpose.

Reported-by: Jeremy Morton <admin@game-point.net>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 Needs to be amended with Tested-by when a report comes...
2012-10-11 11:50:00 -07:00
Junio C Hamano
cd46259ebf Git 1.8.0-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-11 11:18:56 -07:00
Junio C Hamano
7bc0911d03 test-lib: Fix say_color () not to interpret \a\b\c in the message
When running with color disabled (e.g. under prove to produce TAP
output), say_color() helper function is defined to use echo to show
the message.  With a message that ends with "\c", echo is allowed to
interpret it as "Do not end the line with LF".

Use printf "%s\n" to emit the message literally.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-10-11 10:40:36 -07:00
Junio C Hamano
c5fe239860 Merge branch 'rr/git-uri-doc'
* rr/git-uri-doc:
  Git url doc: mark ftp/ftps as read-only and deprecate them
2012-10-10 14:57:26 -07:00
Junio C Hamano
b7804cf227 Merge branch 'bw/cp-a-is-gnuism'
* bw/cp-a-is-gnuism:
  tests: "cp -a" is a GNUism
2012-10-10 14:57:09 -07:00
Junio C Hamano
4321fe0b54 Merge branch 'nd/doc-ignore'
* nd/doc-ignore:
  gitignore.txt: suggestions how to get literal # or ! at the beginning
2012-10-10 14:57:02 -07:00