Refactor the cursor interface to have an 'invalid' state so we can better test if...
[vng.git] / todo
blobc36c5d7f22c0af856a55c513228fca6a1ed33a4e
1 file /usr/bin/git-* | grep ELF | cut -d: -f 1
3 pri
4     Changing and querying the working copy:
5 3     remove        Remove one or more files or directories from the repository.
6 3     mv            Move/rename one or more files or directories.
7       replace       Replace a token with a new value for that token.
8     Copying changes between the working copy and the repository:
9 5     unrecord      Remove recorded patches without changing the working copy.
10 4     amend-record  Replace a patch with a better version before it leaves your repository.
11       resolve       Mark any conflicts to the working copy for manual resolution.
12     Direct modification of the repository:
13       tag           Tag the contents of the repository with a version name.
14       setpref       Set a value for a preference (test, predist, ...).
15       rollback      Record an inverse patch without changing the working directory.
16     Querying the repository:
17       diff          Create a diff between two versions of the repository.
18 2     changes       Gives a changelog-style summary of the repository history.
19       annotate      Display which patch last modified something.
20       dist          Create a distribution tarball.
21       trackdown     Locate the most recent version lacking an error.
22       query         Query information which is stored by vng.
23     Copying patches between repositories with working copy update:
24 1     pull          Copy and apply patches from another repository to this one.
25       unpull        Opposite of pull; unsafe if patch is not in remote repository.
26       obliterate    Delete selected patches from the repository. (UNSAFE!)
27       send          Send by email a bundle of one or more patches.
28       apply         Apply patches (from an email bundle) to the repository.
29       get           Create a local copy of another repository.
30       put           Makes a copy of the repository
31     Administrating repositories:
32       initialize    Initialize a new source tree as a vng repository.
33       optimize      Optimize the repository.
34       check         Check the repository for consistency.
35       repair        Repair the corrupted repository.
37 ------
38 Make the --debug option only available when compiling as debug-build
40 Missing features;
41     * cursor help (when typing '?') seems to be hardcoded to 'revert'.
42     * test each command to honor its arguments and options.
43     * When the user does not want to accept a file rename, mark all the changes for the rest
44       of the file as impossible, and thus skipped.
46 Bugs
47 * Also show / store file permissions in the diff and thus in revert
48 * Use pager for help :)
49 * Use $PAGER for pager
50 * Doing an 'f' which then reaches the end of the cursor will not actually end the interaction.
51 I think I need to redo the interface to allow having an invalid position in the cursor so we can check for that.
53 use git-read-tree --reset HEAD   and  git-update-index --refresh  to implement 'check'
54 use 'prune' and 'pack' to implement optimize.
56 pull;
57     git ls-remote -h -t [remote] to fetch all branches.
58     allow the user to select the branches he wants to mirror.
59     use git fetch
60     git merge
62 changes:
63     use 'git whatchanged -p --unified=0 --root'
64     allow -v to show the diff.
65         We should read the diff in memory and if the user passed a filename we should only show the diffs for that file.
68 [09:31] <brad> git people: is it possible to push just a single commit to devil, or does it ineed to be a branch?
69 [09:31] <simon> brad: you can for example do: git push <remote> <sha1>:name-of-new-branch
70 [09:31] <simon> brad: and later remove the branch again with git push <remote> :name-of-new-branch
71 [09:31] <brad> ahh, cool