aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* filter-branch: add example to move everything into a subdirectoryJohannes Schindelin2007-06-22
| | | | | | | | | This is based on Jeff King's example in 20070621130137.GB4487@coredump.intra.peff.net Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'js/filter'Junio C Hamano2007-06-22
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * js/filter: filter-branch: subdirectory filter needs --full-history filter-branch: Simplify parent computation. Teach filter-branch about subdirectory filtering filter-branch: also don't fail in map() if a commit cannot be mapped filter-branch: Use rev-list arguments to specify revision ranges. filter-branch: fix behaviour of '-k' filter-branch: use $(($i+1)) instead of $((i+1)) chmod +x git-filter-branch.sh filter-branch: prevent filters from reading from stdin t7003: make test repeatable Add git-filter-branch
| * filter-branch: subdirectory filter needs --full-historyJohannes Sixt2007-06-09
| | | | | | | | | | | | | | | | | | | | When two branches are merged that modify a subdirectory (possibly in different intermediate steps) such that both end up identical, then rev-list chooses only one branch. But when we filter history, we want to keep both branches. Therefore, we must use --full-history. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: Simplify parent computation.Johannes Sixt2007-06-09
| | | | | | | | | | | | | | | | | | We can use git rev-list --parents when we list the commits to rewrite. It is not necessary to run git rev-list --parents for each commit in the loop. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Teach filter-branch about subdirectory filteringJohannes Schindelin2007-06-09
| | | | | | | | | | | | | | | | | | | | | | With git-filter-branch --subdirectory-filter <subdirectory> you can get at the history, as seen by a certain subdirectory. The history of the rewritten branch will only contain commits that touched that subdirectory, and the subdirectory will be rewritten to be the new project root. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: also don't fail in map() if a commit cannot be mappedJohannes Sixt2007-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | The map() function can be used by filters to map a commit id to its rewritten id. Such a mapping may not exist, in which case the identity mapping is used (the commit is returned unchanged). In the rewrite loop, this mapping is also needed, but was done explicitly in the same way. Use the map() function instead. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: Use rev-list arguments to specify revision ranges.Johannes Sixt2007-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A subset of commits in a branch used to be specified by options (-k, -r) as well as the branch tip itself (-s). It is more natural (for git users) to specify revision ranges like 'master..next' instead. This makes it so. If no range is specified it defaults to 'HEAD'. As a consequence, the new name of the filtered branch must be the first non-option argument. All remaining arguments are passed to 'git rev-list' unmodified. The tip of the branch that gets filtered is implied: It is the first commit that git rev-list would print for the specified range. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: fix behaviour of '-k'Johannes Schindelin2007-06-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The option '-k' says that the given commit and _all_ of its ancestors are kept as-is. However, if a to-be-rewritten commit branched from an ancestor of an ancestor of a commit given with '-k', filter-branch would fail. Example: A - B \ C If filter-branch was called with '-k B -s C', it would actually keep B (and A as its parent), but would rewrite C, and its parent. Noticed by Johannes Sixt. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: use $(($i+1)) instead of $((i+1))Johannes Schindelin2007-06-06
| | | | | | | | | | | | | | | | | | | | The expression $((i+1)) is not portable at all: even some bash versions do not grok it. So do not use it. Noticed by Jonas Fonseca. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * chmod +x git-filter-branch.shMatthias Lederhofer2007-06-06
| | | | | | | | | | Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * filter-branch: prevent filters from reading from stdinMatthias Lederhofer2007-06-06
| | | | | | | | | | | | | | | | | | | | stdin is the list of commits when the env, tree and index filter are executed. The filters are not supposed to read anything from stdin so the best is to give them /dev/null for reading. Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * t7003: make test repeatableJunio C Hamano2007-06-05
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * Add git-filter-branchJohannes Schindelin2007-06-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This script is derived from Pasky's cg-admin-rewritehist. In fact, it _is_ the same script, minimally adapted to work without cogito. It _should_ be able to perform the same tasks, even if only relying on core-git programs. All the work is Pasky's, just the adaption is mine. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Hopefully-signed-off-by: Petr "cogito master" Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Two trivial -Wcast-qual fixesJunio C Hamano2007-06-22
| | | | | | | | | | | | | | | | Luiz Fernando N. Capitulino noticed the one in tree-walk.h where we cast away constness while computing the legnth of a tree entry. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | diffcore-rename: favour identical basenamesJohannes Schindelin2007-06-22
| | | | | | | | | | | | | | | | | | | | | | When there are several candidates for a rename source, and one of them has an identical basename to the rename target, take that one. Noticed by Govind Salinas, posted by Shawn O. Pearce, partial patch by Linus Torvalds. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git-gui, git-citool as mainporcelain manual pagesShawn O. Pearce2007-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jakub Narebski pointed out that the git-gui blame viewer is not a widely known feature, but is incredibly useful. Part of the issue is advertising. Up until now we haven't even referenced git-gui from within the core Git manual pages, mostly because I just wasn't sure how I wanted to supply git-gui documentation to end-users, or how that documentation should integrate with the core Git documentation. Based upon Jakub's comment that many users may not even know that the gui is available in a stock Git distribution I'm offering up two basic manual pages: git-citool and git-gui. These should offer enough of a starting point for users to identify that the gui exists, and how to start it. Future releases of git-gui may contain their own documentation system available from within a running git-gui. But not today. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Generate tags with correct timestamp (git-svnimport)Dave O'Neill2007-06-22
| | | | | | | | | | | | | | | | | | | | | | | | | | Now uses git-tag instead of manually constructing the tag. This gives us a correct timestamp, removes some crufty code, and makes it work the same as git-cvsimport. The generated tags are now lightweight tags instead of tag objects, which may or may not be the behaviour we want. Also, remove two unused variables from git-cvsimport. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Cloning from a repo without "current branch"Nanako Shiraishi2007-06-20
| | | | | | | | | | | | | | | | | | | | If the remote repository does not have a "current branch", git-clone was confused and did not set up the resulting new repository correctly. It did not reset HEAD from the default 'master', and did not write the SHA1 to the master branch. Signed-off-by: Nanako Shiraishi <nanako3@bluebottle.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Change default man page path to /usr/share/manIsmail Dönmez2007-06-20
| | | | | | | | | | | | | | | | | | | | | | According to FHS, http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES default man page path is $prefix/share/man. Signed-off-by: Ismail Donmez <ismail@pardus.org.tr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | INSTALL: explain how to build documentationJunio C Hamano2007-06-20
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | cvsserver: Actually implement --export-allAlex Riesen2007-06-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Frank Lichtenheld, Fri, Jun 15, 2007 03:01:53 +0200: > +test_expect_failure 'req_Root failure (export-all w/o whitelist)' \ > + 'cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 > + || false' This does not work, at least for bash in current Ubuntu: GNU bash, version 3.2.13(1)-release You have to put "||" on the previous line: Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git log --full-diffJakub Narebski2007-06-16
| | | | | | | | | | | | | | | | Based on description of commit 477f2b41310c4b1040a9e7f72720b9c39d82caf9 "git log --full-diff" adding this option. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git log --abbrev-commit, as a kind of pretty optionJakub Narebski2007-06-16
| | | | | | | | | | | | | | | | | | | | | | | | Documentation taken from paraphrased description of "--abbrev[=<n>]" diff option, and from description of commit 5c51c985 introducing this option. Note that to change number of digits one must use "--abbrev=<n>", which affects [also] diff output. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Use tabs for indenting definition list for options in git-log.txtJakub Narebski2007-06-16
| | | | | | | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git rev-list --timestampJakub Narebski2007-06-16
| | | | | | | | | | | | | | | | | | | | Note that git log does not understand this option yet: $ git log --timestamp fatal: unrecognized argument: --timestamp Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git reflog --stale-fixJakub Narebski2007-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Document --stale-fix, used in "git reflog expire --stale-fix --all" to remove invalid reflog entries, to fix situation after running non reflog-aware git-prune from an older git in the presence of reflogs (see RelNotes-1.5.0.txt). Based on description of commit 1389d9ddaa68a4cbf5018d88f971b9bbb7aaa3c9 "reflog expire --fix-stale" which introduced this option. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git rev-parse --is-inside-git-dirJakub Narebski2007-06-16
| | | | | | | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git read-tree --trivialJakub Narebski2007-06-16
| | | | | | | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Document git rev-list --full-historyJakub Narebski2007-06-16
| | | | | | | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Do not use h_errno after connect(2): the function does not set itAlex Riesen2007-06-16
| | | | | | | | | | | | | | | | | | Randal L. Schwartz noticed compilation problems on SunOS, which made me look at the code again. The thing is, h_errno is not used by connect(2), it is only for functions from netdb.h, like gethostbyname. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Documentation: update "stale" links for 1.5.2.2Junio C Hamano2007-06-16
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'jc/remote'Junio C Hamano2007-06-16
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/remote: git-push: Update description of refspecs and add examples remote.c: "git-push frotz" should update what matches at the source. remote.c: fix "git push" weak match disambiguation remote.c: minor clean-up of match_explicit() remote.c: refactor creation of new dst ref remote.c: refactor match_explicit_refs()
| * | git-push: Update description of refspecs and add examplesJunio C Hamano2007-06-09
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote.c: "git-push frotz" should update what matches at the source.Junio C Hamano2007-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier, when the local repository has a branch "frotz" and the remote repository has a tag "frotz" (but not branch "frotz"), "git-push frotz" mistakenly updated the tag at the remote side. This was because the partial refname matching code was applied independently on both source and destination side. With this fix, when a colon-less refspec is given to git-push, we first match it with the refs in the source repository, and update the matching ref in the destination repository. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote.c: fix "git push" weak match disambiguationJunio C Hamano2007-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When "git push A:B" is given, and A (or B) is not a full refname that begins with refs/, we require an unambiguous match with an existing ref. For this purpose, a match with a local branch or a tag (i.e. refs/heads/A and refs/tags/A) is called a "strong match", and any other match is called a "weak match". A partial refname is unambiguous when there is only one strong match with any number of weak matches, or when there is only one weak match and no other match. However, as reported by Sparse with Ramsay Jones recently, count_refspec_match() function had a bug where a variable in an inner block masked a different variable of the same name, which caused the weak matches to be ignored. This fixes it, and adds tests for the fix. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote.c: minor clean-up of match_explicit()Junio C Hamano2007-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When checking what ref the source refspec matches, we have no business setting the default for the destination, so move that code lower. Also simplify the result from the code block that matches the source side by making it set matched_src only upon unambiguous match. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote.c: refactor creation of new dst refJunio C Hamano2007-06-09
| | | | | | | | | | | | | | | | | | | | | This refactors open-coded sequence to create a new "struct ref" and link it to the tail of dst list into a new function. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | remote.c: refactor match_explicit_refs()Junio C Hamano2007-06-09
| | | | | | | | | | | | | | | | | | | | | | | | This does not change functionality; just splits one block that is deeply nested and indented out of a huge loop into a separate function. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'gp/branch'Junio C Hamano2007-06-16
|\ \ \ | | | | | | | | | | | | | | | | * gp/branch: git-branch: cleanup config file when deleting branches
| * | | git-branch: cleanup config file when deleting branchesGerrit Pape2007-06-09
| |/ / | | | | | | | | | | | | | | | | | | When deleting branches, remove the sections referring to these branches from the config file. Signed-off-by: Gerrit Pape <pape@smarden.org>
* | | Merge branch 'fl/cvsserver'Junio C Hamano2007-06-16
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * fl/cvsserver: cvsserver: Actually implement --export-all cvsserver: Let --base-path and pserver get along just fine cvsserver: Add some useful commandline options
| * | | cvsserver: Actually implement --export-allFrank Lichtenheld2007-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Embarrassing bug number two in my options patch. Also enforce that --export-all is only ever used together with an explicit whitelist. Otherwise people might export every git repository on the whole system without realising. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | cvsserver: Let --base-path and pserver get along just fineFrank Lichtenheld2007-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Embarassing bug number one in my options patch. Since the code for --base-path support rewrote the cvsroot value after comparing it with a possible existing value (i.e. from pserver authentication) the check always failed. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | cvsserver: Add some useful commandline optionsFrank Lichtenheld2007-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make git-cvsserver understand some options inspired by git-daemon, namely --base-path, --export-all, --strict-paths. Also allow the caller to specify a whitelist of allowed directories, again similar to git-daemon. While already adding option parsing also support the common --help and --version options. Rationale: While the gitcvs.enabled configuration option already offers means to limit git-cvsserver access to a repository, there are some use cases where other methods of access control prove to be more useful. E.g. if setting up a pserver for a collection of public repositories one might want limit the exported repositories to exactly the directory this collection is located whithout having to worry about other repositories that might lie around with the configuration variable set (never trust your users ;) Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'lh/submodule'Junio C Hamano2007-06-16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lh/submodule: gitmodules(5): remove leading period from synopsis Add gitmodules(5) git-submodule: give submodules proper names Rename sections from "module" to "submodule" in .gitmodules git-submodule: remember to checkout after clone t7400: barf if git-submodule removes or replaces a file
| * | | | gitmodules(5): remove leading period from synopsisLars Hjemli2007-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Asciidoc treats a line starting with a period followed by a title as a blocktitle element. My introduction of gitmodules(5) unfortunatly broke the documentation build process due to this processing, since it made asciidoc generate an illegal (empty) synopsis element. Removing the leading period fixes the problem and also makes gitmodules(5) use the same synopsis notation as gitattributes(5). Noticed-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | Add gitmodules(5)Lars Hjemli2007-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds documentation for the .gitmodules file. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | git-submodule: give submodules proper namesLars Hjemli2007-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes the way git-submodule uses .gitmodules: Subsections no longer specify the submodule path, they now specify the submodule name. The submodule path is found under the new key "submodule.<name>.path", which is a required key. With this change a submodule can be moved between different 'checkout paths' without upsetting git-submodule. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | Rename sections from "module" to "submodule" in .gitmodulesLars Hjemli2007-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename [module] to [submodule], so that it would be more forward compatible with the proposed extension by harmonizing the section names used in .gitmodules and .git/config. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | | | git-submodule: remember to checkout after cloneLars Hjemli2007-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the initial clone of a submodule, no files would be checked out in the submodule directory if the submodule HEAD was equal to the SHA-1 specified in the index of the containing repository. This fixes the problem by simply ignoring submodule HEAD for a fresh clone. Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>