summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)AuthorFilesLines
2013-06-24push: change `simple` to accommodate triangular workflowsLibravatar Ramkumar Ramachandra1-3/+7
When remote.pushdefault or branch.<name>.pushremote is set to a remote that is different from where you usually fetch from (i.e. a triangular workflow), master@{u} != origin, and push.default is set to `upstream` or `simple` would fail with this error: $ git push fatal: You are pushing to remote 'origin', which is not the upstream of your current branch 'master', without telling me what to push to update which remote branch. The very name of "upstream" indicates that it is only suitable for use in central workflows; let us not even attempt to give it a new meaning in triangular workflows, and error out as before. However, the `simple` does not have to share this error. It is poised to be the default for Git 2.0, and we would like it to do something sensible in triangular workflows. Redefine "simple" as "safer upstream" for centralized workflow as before, but work as "current" for triangular workflow. We may want to make it "safer current", but that is a separate issue. Reported-by: Leandro Lucarella <leandro.lucarella@sociomantic.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-23config doc: rewrite push.default sectionLibravatar Ramkumar Ramachandra1-28/+44
4d35924e (Merge branch 'rr/triangle', 2013-04-07) introduced support for triangular workflows, but the push.default values still assume central workflows. Rewrite the descriptions of `nothing`, `current`, `upstream` and `matching` for greater clarity, and explicitly explain how they should behave in triangular workflows. Leave `simple` as it is for the moment, as we plan to change its meaning to accommodate triangular workflows in a later patch. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-15Update draft release notes to 1.8.4Libravatar Junio C Hamano1-0/+17
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-14Merge branch 'kb/full-history-compute-treesame-carefully-2'Libravatar Junio C Hamano1-17/+25
Major update to the revision traversal logic to improve culling of irrelevant parents while traversing a mergy history. * kb/full-history-compute-treesame-carefully-2: revision.c: make default history consider bottom commits revision.c: don't show all merges for --parents revision.c: discount side branches when computing TREESAME revision.c: add BOTTOM flag for commits simplify-merges: drop merge from irrelevant side branch simplify-merges: never remove all TREESAME parents t6012: update test for tweaked full-history traversal revision.c: Make --full-history consider more merges Documentation: avoid "uninteresting" rev-list-options.txt: correct TREESAME for P t6111: add parents to tests t6111: allow checking the parents as well t6111: new TREESAME test set t6019: test file dropped in -s ours merge decorate.c: compact table when growing
2013-06-11Update draft release notesLibravatar Junio C Hamano1-1/+48
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-11Merge branch 'rr/maint-fetch-tag-doc-asterisks'Libravatar Junio C Hamano1-1/+1
* rr/maint-fetch-tag-doc-asterisks: fetch-options.txt: prevent a wildcard refspec from getting misformatted
2013-06-11Merge branch 'rr/rebase-autostash'Libravatar Junio C Hamano2-0/+18
* rr/rebase-autostash: rebase: implement --[no-]autostash and rebase.autostash rebase --merge: return control to caller, for housekeeping rebase -i: return control to caller, for housekeeping am: return control to caller, for housekeeping rebase: prepare to do generic housekeeping rebase -i: don't error out if $state_dir already exists am: tighten a conditional that checks for $dotest
2013-06-11Merge branch 'fc/at-head'Libravatar Junio C Hamano2-0/+5
Instead of typing four capital letters "HEAD", you can say "@" instead. * fc/at-head: sha1_name: compare variable with constant, not constant with variable Add new @ shortcut for HEAD sha1_name: refactor reinterpret() sha1_name: check @{-N} errors sooner sha1_name: reorganize get_sha1_basic() sha1_name: don't waste cycles in the @-parsing loop sha1_name: remove unnecessary braces sha1_name: remove no-op tests: at-combinations: @{N} versus HEAD@{N} tests: at-combinations: increase coverage tests: at-combinations: improve nonsense() tests: at-combinations: check ref names directly tests: at-combinations: simplify setup
2013-06-11Merge branch 'rr/diffcore-pickaxe-doc'Libravatar Junio C Hamano2-26/+57
Update the low-level diffcore documentation on -S/-G and --pickaxe-all. * rr/diffcore-pickaxe-doc: diffcore-pickaxe doc: document -S and -G properly diffcore-pickaxe: make error messages more consistent
2013-06-11Merge branch 'cr/git-work-tree-sans-git-dir'Libravatar Junio C Hamano1-3/+1
These days, "git --work-tree=there cmd" without specifying an explicit --git-dir=here will do the usual discovery, but we had a description of older behaviour in the documentation. * cr/git-work-tree-sans-git-dir: git.txt: remove stale comment regarding GIT_WORK_TREE
2013-06-10Sync with 1.8.3.1Libravatar Junio C Hamano3-1/+19
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-10Git 1.8.3.1Libravatar Junio C Hamano2-0/+20
Primarily to push out two regression issues that seem to affect many people, namely, the ".gitignore !directory" bug and "daemon cannot read from $HOME owned by root" bug. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-09Document .git/modulesLibravatar Fredrik Gustafsson1-0/+3
A note in the beginning of this document describes the behavior already. This patch just adds where to find the repositories. Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-07fetch-options.txt: prevent a wildcard refspec from getting misformattedLibravatar Junio C Hamano1-1/+1
When explaining the "--tags" option as an equivalent to giving an explicit "refs/tags/*:refs/tags/*" refspec, the two asterisks were misinterpreted by AsciiDoc as a request to typeset the string segment between them in bold. We could fix it in two ways. We can replace them with {asterisk}s while keeping the string as body text, or we can mark it as a literal string with backquotes around it. Let's do the latter, as it is teaching the user an "exactly as typed" alternative. Noticed-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-06Update draft release notes to 1.8.4Libravatar Junio C Hamano1-0/+23
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-06Merge branch 'nd/clone-connectivity-shortcut'Libravatar Junio C Hamano1-0/+3
Special case "git clone" and use lighter-weight implementation to check the completeness of the history behind refs. * nd/clone-connectivity-shortcut: clone: open a shortcut for connectivity check index-pack: remove dead code (it should never happen) fetch-pack: prepare updated shallow file before fetching the pack clone: let the user know when check_everything_connected is run
2013-06-05Update draft release notes to 1.8.4Libravatar Junio C Hamano1-2/+37
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-05Merge branch 'nd/urls-doc-no-file-hyperlink-fix'Libravatar Junio C Hamano1-1/+1
* nd/urls-doc-no-file-hyperlink-fix: urls.txt: avoid auto converting to hyperlink
2013-06-05Merge branch 'tr/push-no-verify-doc'Libravatar Junio C Hamano1-1/+6
"git push --[no-]verify" was not documented. * tr/push-no-verify-doc: Document push --no-verify
2013-06-03diffcore-pickaxe doc: document -S and -G properlyLibravatar Ramkumar Ramachandra2-26/+57
The documentation of -S and -G is very sketchy. Completely rewrite the sections in Documentation/diff-options.txt and Documentation/gitdiffcore.txt. References: 52e9578 ([PATCH] Introducing software archaeologist's tool "pickaxe".) f506b8e (git log/diff: add -G<regexp> that greps in the patch text) Inputs-from: Phil Hord <phil.hord@gmail.com> Co-authored-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-03git.txt: remove stale comment regarding GIT_WORK_TREELibravatar Chris Rorvick1-3/+1
Official support for specifying --work-tree/GIT_WORK_TREE without --git-dir/GIT_DIR was added with v1.7.4-rc3~2^2~2. Update description of GIT_WORK_TREE to reflect this. Signed-off-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-02Update draft release notes to 1.8.4Libravatar Junio C Hamano1-0/+53
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-06-02Merge branch 'tr/line-log'Libravatar Junio C Hamano4-22/+48
* tr/line-log: git-log(1): remove --full-line-diff description line-log: fix documentation formatting log -L: improve comments in process_all_files() log -L: store the path instead of a diff_filespec log -L: test merge of parallel modify/rename t4211: pass -M to 'git log -M -L...' test log -L: fix overlapping input ranges log -L: check range set invariants when we look it up Speed up log -L... -M log -L: :pattern:file syntax to find by funcname Implement line-history search (git log -L) Export rewrite_parents() for 'log -L' Refactor parse_loc
2013-06-02Merge branch 'mc/describe-first-parent'Libravatar Junio C Hamano1-1/+8
* mc/describe-first-parent: describe: Add --first-parent option
2013-06-02Merge branch 'jk/fetch-always-update-tracking'Libravatar Junio C Hamano1-3/+8
"git fetch origin master" unlike "git fetch origin" or "git fetch" did not update "refs/remotes/origin/master"; this was an early design decision to keep the update of remote tracking branches predictable, but in practice it turns out that people find it more convenient to opportunisticly update them whenever we have a chance, and we have been updating them when we run "git push" which already breaks the original "predictability" anyway. Now such a fetch does update refs/remotes/origin/master. * jk/fetch-always-update-tracking: fetch: don't try to update unfetched tracking refs fetch: opportunistically update tracking refs refactor "ref->merge" flag fetch/pull doc: untangle meaning of bare <ref> t5510: start tracking-ref tests from a known state
2013-06-02Merge branch 'nd/clone-local-with-colon'Libravatar Junio C Hamano1-0/+6
"git clone foo/bar:baz" cannot be a request to clone from a remote over git-over-ssh specified in the scp style. Detect this case and clone from a local repository at "foo/bar:baz". * nd/clone-local-with-colon: clone: allow cloning local paths with colons in them
2013-06-02Merge branch 'rh/merge-options-doc-fix'Libravatar Junio C Hamano1-1/+2
* rh/merge-options-doc-fix: Documentation/merge-options.txt: restore `-e` option
2013-06-02Merge branch 'an/diff-index-doc'Libravatar Junio C Hamano1-6/+6
* an/diff-index-doc: Documentation/diff-index: mention two modes of operation
2013-05-29Sync with maintLibravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-29Merge branch 'maint-1.8.2' into maintLibravatar Junio C Hamano1-1/+1
* maint-1.8.2: trivial: Add missing period in documentation
2013-05-29Start 1.8.4 cycleLibravatar Junio C Hamano2-3/+76
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-29Merge branch 'as/check-ignore'Libravatar Junio C Hamano3-2/+28
Enhance "check-ignore" (1.8.2 update) to work more like "check-attr" over bidi-pipes. * as/check-ignore: t0008: use named pipe (FIFO) to test check-ignore streaming Documentation: add caveats about I/O buffering for check-{attr,ignore} check-ignore: allow incremental streaming of queries via --stdin check-ignore: move setup into cmd_check_ignore() check-ignore: add -n / --non-matching option t0008: remove duplicated test fixture data
2013-05-29Merge branch 'jh/checkout-auto-tracking'Libravatar Junio C Hamano2-9/+10
Update "git checkout foo" that DWIMs the intended "upstream" and turns it into "git checkout -t -b foo remotes/origin/foo" to correctly take existing remote definitions into account. The remote "origin" may be what uniquely map its own branch to remotes/some/where/foo but that some/where may not be "origin". * jh/checkout-auto-tracking: glossary: Update and rephrase the definition of a remote-tracking branch branch.c: Validate tracking branches with refspecs instead of refs/remotes/* t9114.2: Don't use --track option against "svn-remote"-tracking branches t7201.24: Add refspec to keep --track working t3200.39: tracking setup should fail if there is no matching refspec. checkout: Use remote refspecs when DWIMming tracking branches t2024: Show failure to use refspec when DWIMming remote branch names t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
2013-05-29Merge branch 'jc/prune-all'Libravatar Junio C Hamano3-4/+16
We used the approxidate() parser for "--expire=<timestamp>" options of various commands, but it is better to treat --expire=all and --expire=now a bit more specially than using the current timestamp. Update "git gc" and "git reflog" with a new parsing function for expiry dates. * jc/prune-all: prune: introduce OPT_EXPIRY_DATE() and use it api-parse-options.txt: document "no-" for non-boolean options git-gc.txt, git-reflog.txt: document new expiry options date.c: add parse_expiry_date()
2013-05-29Merge branch 'mh/fetch-into-shallow'Libravatar Junio C Hamano1-2/+1
"git fetch" into a shallow repository from a repository that does not know about the shallow boundary commits (e.g. a different fork from the repository the current shallow repository was cloned from) did not work correctly. * mh/fetch-into-shallow: t5500: add test for fetching with an unknown 'shallow' upload-pack: ignore 'shallow' lines with unknown obj-ids
2013-05-29Merge branch 'fc/transport-helper-error-reporting'Libravatar Junio C Hamano1-6/+6
Update transport helper to report errors and maintain ref hierarchy used to keep track of remote helper state better. * fc/transport-helper-error-reporting: transport-helper: fix remote helper namespace regression test: remote-helper: add missing and t5801: "VAR=VAL shell_func args" is forbidden transport-helper: update remote helper namespace transport-helper: trivial code shuffle transport-helper: warn when refspec is not used transport-helper: clarify pushing without refspecs transport-helper: update refspec documentation transport-helper: clarify *:* refspec transport-helper: improve push messages transport-helper: mention helper name when it dies transport-helper: report errors properly
2013-05-29rebase: implement --[no-]autostash and rebase.autostashLibravatar Ramkumar Ramachandra2-0/+18
This new feature allows a rebase to be executed on a dirty worktree or index. It works by creating a temporary "dangling merge commit" out of the worktree and index changes (via 'git stash create'), and automatically applying it after a successful rebase or abort. rebase stores the SHA-1 hex of the temporary merge commit, along with the rest of the rebase state, in either .git/{rebase-merge,rebase-apply}/autostash depending on the kind of rebase. Since $state_dir is automatically removed at the end of a successful rebase or abort, so is the autostash. The advantage of this approach is that we do not affect the normal stash's reflogs, making the autostash invisible to the end-user. This means that you can use 'git stash' during a rebase as usual. When the autostash application results in a conflict, we push $state_dir/autostash onto the normal stash and remove $state_dir ending the rebase. The user can inspect the stash, and pop or drop at any time. Most significantly, this feature means that a caller like pull (with pull.rebase set to true) can easily be patched to remove the require_clean_work_tree restriction. Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-28trivial: Add missing period in documentationLibravatar Phil Hord1-1/+1
Signed-off-by: Phil Hord <hordp@cisco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-28clone: open a shortcut for connectivity checkLibravatar Nguyễn Thái Ngọc Duy1-0/+3
In order to make sure the cloned repository is good, we run "rev-list --objects --not --all $new_refs" on the repository. This is expensive on large repositories. This patch attempts to mitigate the impact in this special case. In the "good" clone case, we only have one pack. If all of the following are met, we can be sure that all objects reachable from the new refs exist, which is the intention of running "rev-list ...": - all refs point to an object in the pack - there are no dangling pointers in any object in the pack - no objects in the pack point to objects outside the pack The second and third checks can be done with the help of index-pack as a slight variation of --strict check (which introduces a new condition for the shortcut: pack transfer must be used and the number of objects large enough to call index-pack). The first is checked in check_everything_connected after we get an "ok" from index-pack. "index-pack + new checks" is still faster than the current "index-pack + rev-list", which is the whole point of this patch. If any of the conditions fail, we fall back to the good old but expensive "rev-list ..". In that case it's even more expensive because we have to pay for the new checks in index-pack. But that should only happen when the other side is either buggy or malicious. Cloning linux-2.6 over file:// before after real 3m25.693s 2m53.050s user 5m2.037s 4m42.396s sys 0m13.750s 0m16.574s A more realistic test with ssh:// over wireless before after real 11m26.629s 10m4.213s user 5m43.196s 5m19.444s sys 0m35.812s 0m37.630s This shortcut is not applied to shallow clones, partly because shallow clones should have no more objects than a usual fetch and the cost of rev-list is acceptable, partly to avoid dealing with corner cases when grafting is involved. This shortcut does not apply to unpack-objects code path either because the number of objects must be small in order to trigger that code path. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-24Git 1.8.3Libravatar Junio C Hamano1-11/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-24urls.txt: avoid auto converting to hyperlinkLibravatar Nguyễn Thái Ngọc Duy1-1/+1
file:///path/to/repo.git/ is converted to a hyperlink while others are not. Put a backslash to avoid the conversion. Tested with asciidoc 8.6.5. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-23Document push --no-verifyLibravatar Thomas Rast1-1/+6
ec55559 (push: Add support for pre-push hooks, 2013-01-13) forgot to add a note to git-push(1) about the new --no-verify option. Signed-off-by: Thomas Rast <trast@inf.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-20Documentation/diff-index: mention two modes of operationLibravatar Junio C Hamano1-6/+6
"diff-index" can be used to compare a tree with the tracked working tree files (when used without the --index option), or with the index (when used with the --index option). The text however did not say anything about the comparison with the working tree at all. Fix this. Reported-by: Albert Netymk <albertnetymk@gmail.com> Helped-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-20git-svn: introduce --parents parameter for commands branch and tagLibravatar Tobias Schulte1-0/+5
This parameter is equivalent to the parameter --parents on svn cp commands and is useful for non-standard repository layouts. Signed-off-by: Tobias Schulte <tobias.schulte@gliderpilot.de> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2013-05-20git-svn: clarify explanation of --destination argumentLibravatar Jonathan Nieder1-5/+14
The existing documentation for "-d" does not make it obvious whether its argument is supposed to be a full svn path, a partial svn path, the glob from the config file, or what. Clarify the text and add an example to get the reader started. Reported-by: Nathan Gray <n8gray@n8gray.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2013-05-20git-svn: multiple fetch/branches/tags keys are supportedLibravatar Nathan Gray1-0/+12
"git svn" can be configured to use multiple fetch, branches, and tags refspecs by passing multiple --branches or --tags options at init time or editing the configuration file later, which can be handy when working with messy Subversion repositories. Add a note to the configuration section documenting how this works. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2013-05-20describe: Add --first-parent optionLibravatar Mike Crowe1-1/+8
Only consider the first parent commit when walking the commit history. This is useful if you only wish to match tags on your branch after a merge. Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-05-17Merge branch 'fc/doc-style'Libravatar Junio C Hamano20-47/+37
* fc/doc-style: documentation: trivial style cleanups
2013-05-17Merge branch 'dw/asciidoc-sources-are-dot-txt-files'Libravatar Junio C Hamano1-2/+4
* dw/asciidoc-sources-are-dot-txt-files: CodingGuidelines: Documentation/*.txt are the sources
2013-05-17documentation: trivial style cleanupsLibravatar Felipe Contreras20-47/+37
White-spaces, missing braces, standardize --[no-]foo. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>