aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* everyday: replace a few 'prune' and 'repack' with 'gc'Junio C Hamano2006-12-27
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Create 'git gc' to perform common maintenance operations.Shawn O. Pearce2006-12-27
| | | | | | | | | | | | | | | | | | | | Junio asked for a 'git gc' utility which users can execute on a regular basis to perform basic repository actions such as: * pack-refs --prune * reflog expire * repack -a -d * prune * rerere gc So here is a command which does exactly that. The parameters fed to reflog's expire subcommand can be chosen by the user by setting configuration options in .git/config (or ~/.gitconfig), as users may want different expiration windows for each repository but shouldn't be bothered to remember what they are all of the time. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-reflog: gc.* configuration and documentation.Junio C Hamano2006-12-27
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* rerere gc: honor configuration and document itJunio C Hamano2006-12-27
| | | | | | | Two configuration to control the expiration of rerere records are introduced and documented. Signed-off-by: Junio C Hamano <junkio@cox.net>
* count-objects -v: show number of packs as well.Junio C Hamano2006-12-27
| | | | | | | | | Recent "git push" keeps transferred objects packed much more aggressively than before. Monitoring output from git-count-objects -v for number of loose objects is not enough to decide when to repack -- having too many small packs is also a good cue for repacking. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'jc/fsck-reflog'Junio C Hamano2006-12-26
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/fsck-reflog: Add git-reflog to .gitignore reflog expire: do not punt on tags that point at non commits. reflog expire: prune commits that are not incomplete Don't crash during repack of a reflog with pruned commits. git reflog expire Move in_merge_bases() to commit.c reflog: fix warning message. Teach git-repack to preserve objects referred to by reflog entries. Protect commits recorded in reflog from pruning. add for_each_reflog_ent() iterator
| * Add git-reflog to .gitignoreNicolas Pitre2006-12-26
| | | | | | | | | | Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * reflog expire: do not punt on tags that point at non commits.Junio C Hamano2006-12-22
| | | | | | | | | | | | | | | | It is unusual for a tag to point at a non-commit, and it is also unusual for a tag to have reflog, but that is not an error and we should still prune its reflog entries just as other refs. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * reflog expire: prune commits that are not incompleteJunio C Hamano2006-12-22
| | | | | | | | | | | | | | | | | | | | Older fsck-objects and prune did not protect commits in reflog entries, and it is quite possible that a commit still exists in the repository (because it was in a pack, or something) while some of its trees and blobs are long gone. Make sure the commit and its associated tree is complete and expire incomplete ones. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Don't crash during repack of a reflog with pruned commits.Shawn O. Pearce2006-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the user has been using reflog for a long time (e.g. since its introduction) then it is very likely that an existing branch's reflog may still mention commits which have long since been pruned out of the repository. Rather than aborting with a very useless error message during git-repack, pack as many valid commits as we can get from the reflog and let the user know that the branch's reflog contains already pruned commits. A future 'git reflog expire' (or whatever it finally winds up being called) can then be performed to expunge those reflog entries. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Merge branch 'master' into jc/fsck-reflogJunio C Hamano2006-12-21
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Introduce a global level warn() function. Rename imap-send's internal info/warn functions. _XOPEN_SOURCE problem also exists on FreeBSD parse-remote: mark all refs not for merge only when fetching more than one git-reset --hard: tell the user what the HEAD was reset to git-tag: support -F <file> option Revert "git-pull: refuse default merge without branch.*.merge" Suggest 'add' in am/revert/cherry-pick. Use git-merge-file in git-merge-one-file, too diff --check: fix off by one error Documentation/git-branch: new -r to delete remote-tracking branches. Fix system header problems on Mac OS X spurious .sp in manpages
| * | git reflog expireJunio C Hamano2006-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prepares a place to collect reflog management subcommands, and implements "expire" action. $ git reflog expire --dry-run \ --expire=4.weeks \ --expire-unreachable=1.week \ refs/heads/master The expiration uses two timestamps: --expire and --expire-unreachable. Entries older than expire time (defaults to 90 days), and entries older than expire-unreachable time (defaults to 30 days) and records a commit that has been rewound and made unreachable from the current tip of the ref are removed from the reflog. The parameter handling is still rough, but I think the core logic for expiration is already sound. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Move in_merge_bases() to commit.cJunio C Hamano2006-12-20
| | | | | | | | | | | | This reasonably useful function was hidden inside builtin-branch.c
| * | reflog: fix warning message.Junio C Hamano2006-12-20
| | | | | | | | | | | | | | | | | | | | | | | | When ref@{N} is specified on a ref that has only M entries (M < N), instead of saying the initial timestamp the reflog has, warn that there is only M entries. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Teach git-repack to preserve objects referred to by reflog entries.Junio C Hamano2006-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new option --reflog to pack-objects and revision machinery; do not bother documenting it for now, since this is only useful for local repacking. When the option is passed, objects reachable from reflog entries are marked as interesting while computing the set of objects to pack. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Protect commits recorded in reflog from pruning.Junio C Hamano2006-12-20
| | | | | | | | | | | | | | | | | | | | | This teaches fsck-objects and prune to protect objects referred to by reflog entries. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | add for_each_reflog_ent() iteratorJunio C Hamano2006-12-20
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | everyday: update for v1.5.0Junio C Hamano2006-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix minor mark-up mistakes and adjust to v1.5.0 BCP, namely: - use "git add" instead of "git update-index"; - use "git merge" instead of "git pull ."; - use separate remote layout; - use config instead of remotes/origin file; Also updates "My typical git day" example since now I have 'next' branch these days. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-svn: dcommit should diff against the current HEAD after committingEric Wong2006-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a followup to dd31da2fdc199132c9fd42023aea5b33672d73cc. Regardless of whether we commit an alternate head, we always diff-tree based on the current HEAD, and rebase against our remote reference as necessary. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-svn: quiet down tests and fix some unportable shell constructsEric Wong2006-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The latest changes to git-commit have made it more verbose; and I was running the setup of the tests outside of the test_expect_*, so errors in those were not caught. Now we move them to where they can be eval'ed and have their output trapped. export var=value has been removed Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | hooks/commit-msg: add example to add Signed-off-by line to messageAndy Parkins2006-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After checking to see if the commit message already has the target signed-off-by (for example in --amend commits), this patch generates a signed off by line from the repository owner and adds it to the commit message. Based on Johannes Schindelin's earlier patch to perform the same function. Originally, this was done in the pre-commit hook but Junio pointed out that the commit-msg hook allows the message to be edited. This has the aditional advantage that the commit-msg hook gets passed the name of the message file as a parameter, so it doesn't have to figure out GIT_DIR for itself. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | move git-blame to its place in .gitignoreNicolas Pitre2006-12-26
| | | | | | | | | | | | | | | Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Document git-reset <commit> -- <paths>...Junio C Hamano2006-12-26
| | |
* | | Document --numstat in git-apply and git-diffJunio C Hamano2006-12-26
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | show-branch --reflog: add documentation.Junio C Hamano2006-12-26
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | add .mailmap for git-shortlog output with the git repositoryNicolas Pitre2006-12-25
| | | | | | | | | | | | | | | | | | | | | The git repository itself was messed up in a couple cases. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | GIT v1.5.0 previewv1.5.0-rc0Junio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | This is not yet -rc1 where all new topics closes, but I think it is getting pretty closer. I'd still want to merge updates to fsck/prune to honor reflog entries before -rc1. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'jc/bm'Junio C Hamano2006-12-25
|\ \ \ | | | | | | | | | | | | | | | | * jc/bm: Allow branch.*.merge to talk about remote tracking branches.
| * | | Allow branch.*.merge to talk about remote tracking branches.Junio C Hamano2006-12-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | People often get confused if the value of branch.*.merge should be the remote branch name they are fetching from, or the tracking branch they locally have. So this allows either. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'rf/web'Junio C Hamano2006-12-25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rf/web: gitweb: Use rev-list --skip option. gitweb: Change history action to use parse_commits. gitweb: Change atom, rss actions to use parse_commits. gitweb: Change header search action to use parse_commits. gitweb: Change log action to use parse_commits. gitweb: Change summary, shortlog actions to use parse_commits. gitweb: We do longer need the --parents flag in rev-list. gitweb: Add parse_commits, used to bulk load commit objects.
| * | | | gitweb: Use rev-list --skip option.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Change history action to use parse_commits.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also added missing accesskey. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Change atom, rss actions to use parse_commits.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Change header search action to use parse_commits.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Change log action to use parse_commits.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also add missing next link to bottom of page. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Change summary, shortlog actions to use parse_commits.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also added missing accesskey. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: We do longer need the --parents flag in rev-list.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only want to know the direct parents of a given commit object, these parents are available in the --header output of rev-list. If --parents is supplied with --full-history the output includes merge commits that aren't relevant. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | gitweb: Add parse_commits, used to bulk load commit objects.Robert Fitzsimons2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new method parse_commits which is able to parse multiple commit objects at once. Reworked parse_commit to share the commit object parsing logic. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-add -f: allow adding otherwise ignored files.Junio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of just warning, refuse to add otherwise ignored files by default, and allow it with an -f option. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-add: warn when adding an ignored file with an explicit request.Junio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We allow otherwise ignored paths to be added to the index by spelling its path out on the command line, but we would warn the user about them when we do so. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-add: add ignored files when asked explicitly.Junio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One thing many people found confusing about git-add was that a file whose name matches an ignored pattern could not be added to the index. With this, such a file can be added by explicitly spelling its name to git-add. Fileglobs and recursive behaviour do not add ignored files to the index. That is, if a pattern '*.o' is in .gitignore, and two files foo.o, bar/baz.o are in the working tree: $ git add foo.o $ git add '*.o' $ git add bar Only the first form adds foo.o to the index. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | read_directory: show_both option.Junio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This teaches the internal read_directory() routine to return both interesting and ignored pathnames. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-rm: DocumentationJunio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | t3600: update the test for updated git rmJunio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | git-rm: update to saner semanticsJunio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the "git rm" command with saner semantics suggested on the list earlier with: Message-ID: <Pine.LNX.4.64.0612020919400.3476@woody.osdl.org> Message-ID: <Pine.LNX.4.64.0612040737120.3476@woody.osdl.org> The command still validates that the given paths all talk about sensible paths to avoid mistakes (e.g. "git rm fiel" when file "fiel" does not exist would error out -- user meant to remove "file"), and it has further safety checks described next. The biggest difference is that the paths are removed from both index and from the working tree (if you have an exotic need to remove paths only from the index, you can use the --cached option). The command refuses to remove if the copy on the working tree does not match the index, or if the index and the HEAD does not match. You can defeat this check with -f option. This safety check has two exceptions: if the working tree file does not exist to begin with, that technically does not match the index but it is allowed. This is to allow this CVS style command sequence: rm <path> && git rm <path> Also if the index is unmerged at the <path>, you can use "git rm <path>" to declare that the result of the merge loses that path, and the above safety check does not trigger; requiring the file to match the index in this case forces the user to do "git update-index file && git rm file", which is just crazy. To recursively remove all contents from a directory, you need to pass -r option, not just the directory name as the <path>. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | match_pathspec() -- return how well the spec matchedJunio C Hamano2006-12-25
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the return value from match_pathspec() so that the caller can tell cases between exact match, leading pathname match (i.e. file "foo/bar" matches a pathspec "foo"), or filename glob match. This can be used to prevent "rm dir" from removing "dir/file" without explicitly asking for recursive behaviour with -r flag, for example. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'jc/skip-count'Junio C Hamano2006-12-25
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * jc/skip-count: revision: --skip=<n>
| * | | | revision: --skip=<n>Junio C Hamano2006-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds --skip=<n> option to revision traversal machinery. Documentation and test were added by Robert Fitzsimons. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'jc/git-add--interactive'Junio C Hamano2006-12-25
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | * jc/git-add--interactive: git-add --interactive: add documentation git-add --interactive: hunk splitting git-add --interactive
| * | | | git-add --interactive: add documentationJunio C Hamano2006-12-25
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>