2 Changing and querying the working copy:
3 3 remove Remove one or more files or directories from the repository.
4 3 mv Move/rename one or more files or directories.
5 replace Replace a token with a new value for that token.
6 Copying changes between the working copy and the repository:
7 4 amend-record Replace a patch with a better version before it leaves your repository.
8 resolve Mark any conflicts to the working copy for manual resolution.
9 Direct modification of the repository:
10 tag Tag the contents of the repository with a version name.
11 setpref Set a value for a preference (test, predist, ...).
12 rollback Record an inverse patch without changing the working directory.
13 Querying the repository:
14 diff Create a diff between two versions of the repository.
15 annotate Display which patch last modified something.
16 dist Create a distribution tarball.
17 trackdown Locate the most recent version lacking an error.
18 query Query information which is stored by vng.
19 Copying patches between repositories with working copy update:
20 1 pull Copy and apply patches from another repository to this one.
21 unpull Opposite of pull; unsafe if patch is not in remote repository.
22 obliterate Delete selected patches from the repository. (UNSAFE!)
23 send Send by email a bundle of one or more patches.
24 apply Apply patches (from an email bundle) to the repository.
25 get Create a local copy of another repository.
26 put Makes a copy of the repository
27 Administrating repositories:
28 optimize Optimize the repository.
29 check Check the repository for consistency.
30 repair Repair the corrupted repository.
33 Make the --debug option only available when compiling as debug-build
36 * cursor help (when typing '?') seems to be hardcoded to 'revert'.
37 * test each command to honor its arguments and options.
38 * add -r should add recursively
39 * Use pager for help :)
40 * Use $PAGER for pager
43 * Also show / store file permissions in the diff and thus in revert
44 * a Whatsnew -u still shows a/foo and b/foo remove the 'a' and 'b' Maybe add a bool arg to ChangeSet::writeDiff
45 * Instead of hardcoding '.git' as a dirname; use git-rev-parse in Configuration and in commits/Commit
46 * reading a patch that has '\ No newline at end of file' fails
48 use git-read-tree --reset HEAD and git-update-index --refresh to implement 'check'
49 use 'prune' and 'pack' to implement optimize.
52 git ls-remote -h -t [remote] to fetch all branches.
53 allow the user to select the branches he wants to mirror.
58 allow -v to show the diff.
59 We should read the diff in memory and if the user passed a filename we should only show the diffs for that file.
61 [09:31] <brad> git people: is it possible to push just a single commit to devil, or does it ineed to be a branch?
62 [09:31] <simon> brad: you can for example do: git push <remote> <sha1>:name-of-new-branch
63 [09:31] <simon> brad: and later remove the branch again with git push <remote> :name-of-new-branch
64 [09:31] <brad> ahh, cool