From b9cb007076542e32f7b99bb18bc6ec424f3b407b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 19 Oct 2009 23:03:52 +0200 Subject: Added TODO file to keep track of tasks and in case someone wants to help here and there ;) --- TODO | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 TODO (limited to 'TODO') diff --git a/TODO b/TODO new file mode 100644 index 00000000..61da958e --- /dev/null +++ b/TODO @@ -0,0 +1,57 @@ +==== +TODO +==== + + +General +------- +* Classes requiring repo actually only need the git command - this should be + changed to limit their access level and make things a little safer. +* Check for correct usage of id, ref and hexsha and define their meanings, + currently its not so clear what id may be in cases or not - afaik its usually + a sha or ref unless cat-file is used where it must be a sha +* Overhaul command caching - currently its possible to create many instances of + the std-in command types, as it appears they are not killed when the repo gets + deleted. +* ReferenceList being a list that can also be accessed by name, such as rlist.HEAD + or rlist.master, allowing repo.heads.master +* References should be parsed 'manually' to get around command invocation, but + be sure to be able to read packed refs. + +Docs +---- +Overhaul docs - check examples, check looks, improve existing docs + +Index +----- +* Index class required for special handling ? Probably considering what I want + to do ! Dulwich can already write the index, and read trees, although it + could be improved as well and could possibly be made faster unless we want + to use the c modules ( not for now ) +* Index Merge ( merge two trees into the index to quickly see conflicts ). + Its possible to write it into a separate index file that can be read separately. + +Repo +---- +* Nice fetch/pull handling, at least supported/wired throuhg to the git command +* is_dirty should be improved to allow options what to diff with: + working tree|index|head - also it should use raw mode to prevent patch generation +* repo.bare is set according to the path it is initialized with, although it + should be read from the configuration in fact. Check uses of repo.bare. +* Blame: Read the blame format making assumptions about its structure, + currently regex are used a lot although we can deduct what will be next. + - Read data from a stream directly from git command + +Submodules +---------- +* add submodule support + +Tree +---- +* Should return submodules during iteration ( identifies as commit ) +* Work through test and check for test-case cleanup and completeness ( what about + testing whether it raises on invalid input ? ). See 6dc7799d44e1e5b9b77fd19b47309df69ec01a99 +* Derive from Iterable, simple pipe it through to Commit objects and iterate using + commit.tree. + + -- cgit v1.2.3 From 989671780551b7587d57e1d7cb5eb1002ade75b4 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 19 Oct 2009 23:44:18 +0200 Subject: Implemneted IterableLists for refs, commits and remote objects including simple tests --- TODO | 2 -- 1 file changed, 2 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 61da958e..55c30fb1 100644 --- a/TODO +++ b/TODO @@ -13,8 +13,6 @@ General * Overhaul command caching - currently its possible to create many instances of the std-in command types, as it appears they are not killed when the repo gets deleted. -* ReferenceList being a list that can also be accessed by name, such as rlist.HEAD - or rlist.master, allowing repo.heads.master * References should be parsed 'manually' to get around command invocation, but be sure to be able to read packed refs. -- cgit v1.2.3 From e64957d8e52d7542310535bad1e77a9bbd7b4857 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 00:04:10 +0200 Subject: Improved is_dirty including test --- TODO | 2 -- 1 file changed, 2 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 55c30fb1..685c8646 100644 --- a/TODO +++ b/TODO @@ -32,8 +32,6 @@ Index Repo ---- * Nice fetch/pull handling, at least supported/wired throuhg to the git command -* is_dirty should be improved to allow options what to diff with: - working tree|index|head - also it should use raw mode to prevent patch generation * repo.bare is set according to the path it is initialized with, although it should be read from the configuration in fact. Check uses of repo.bare. * Blame: Read the blame format making assumptions about its structure, -- cgit v1.2.3 From aa5e366889103172a9829730de1ba26d3dcbc01b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 10:11:16 +0200 Subject: Moved specialized methods like dashify, touch and is_git_dir to module to the respective modules that use them fixed repo.daemon_export which did not work anymore due to incorrect touch implementation and wrong property names --- TODO | 1 - 1 file changed, 1 deletion(-) (limited to 'TODO') diff --git a/TODO b/TODO index 685c8646..8f5737f0 100644 --- a/TODO +++ b/TODO @@ -2,7 +2,6 @@ TODO ==== - General ------- * Classes requiring repo actually only need the git command - this should be -- cgit v1.2.3 From dd76b9e72b21d2502a51e3605e5e6ab640e5f0bd Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 10:45:40 +0200 Subject: Fixed bare repository handling - bare is now a property to prevent writing it --- TODO | 2 -- 1 file changed, 2 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 8f5737f0..3b9ef460 100644 --- a/TODO +++ b/TODO @@ -31,8 +31,6 @@ Index Repo ---- * Nice fetch/pull handling, at least supported/wired throuhg to the git command -* repo.bare is set according to the path it is initialized with, although it - should be read from the configuration in fact. Check uses of repo.bare. * Blame: Read the blame format making assumptions about its structure, currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command -- cgit v1.2.3 From 972a8b84bb4a3adec6322219c11370e48824404e Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 10:48:31 +0200 Subject: Added slots to Repo type to be sure we do not accidentally set values on it, and to be more efficient of course ;) TODO: Added info about possible config improvement --- TODO | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 3b9ef460..cda7bf20 100644 --- a/TODO +++ b/TODO @@ -15,6 +15,13 @@ General * References should be parsed 'manually' to get around command invocation, but be sure to be able to read packed refs. +Config +------ +* Expand .get* methods of GitConfigParser to support default value. If it is not None, + it will be returned instead of raising. This way the class will be much more usable, + and ... I truly hate this config reader as it is so 'old' style. Its not even a new-style + class yet showing that it must be ten years old. + Docs ---- Overhaul docs - check examples, check looks, improve existing docs -- cgit v1.2.3 From 35a09c0534e89b2d43ec4101a5fb54576b577905 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 11:17:39 +0200 Subject: repo.alternates test cheked for correctness and bugfixed - totally mocked tests bare the risk that things do not work properly outside of the sandbox. --- TODO | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index cda7bf20..0915806d 100644 --- a/TODO +++ b/TODO @@ -21,6 +21,12 @@ Config it will be returned instead of raising. This way the class will be much more usable, and ... I truly hate this config reader as it is so 'old' style. Its not even a new-style class yet showing that it must be ten years old. + +Diff +---- +* Check docs on diff-core to be sure the raw-format presented there can be read + properly: + - http://www.kernel.org/pub/software/scm/git-core/docs/gitdiffcore.html Docs ---- -- cgit v1.2.3 From 4a534eba97db3c2cfb2926368756fd633d25c056 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 12:24:47 +0200 Subject: Added frame for index implementation and testing --- TODO | 2 ++ 1 file changed, 2 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 0915806d..b6e8d10c 100644 --- a/TODO +++ b/TODO @@ -57,6 +57,8 @@ Tree * Should return submodules during iteration ( identifies as commit ) * Work through test and check for test-case cleanup and completeness ( what about testing whether it raises on invalid input ? ). See 6dc7799d44e1e5b9b77fd19b47309df69ec01a99 + - Also assure that the test-case setup is a bit more consistent ( Derive from TestCase, possibly + make repo a class member instead of an instance member * Derive from Iterable, simple pipe it through to Commit objects and iterate using commit.tree. -- cgit v1.2.3 From 56823868efddd3bdbc0b624cdc79adc3a2e94a75 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 20 Oct 2009 21:32:00 +0200 Subject: Improved tuple access of EntryIndex class including test, stage and type access still needs to be decoded though --- TODO | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index b6e8d10c..93ca313a 100644 --- a/TODO +++ b/TODO @@ -58,8 +58,4 @@ Tree * Work through test and check for test-case cleanup and completeness ( what about testing whether it raises on invalid input ? ). See 6dc7799d44e1e5b9b77fd19b47309df69ec01a99 - Also assure that the test-case setup is a bit more consistent ( Derive from TestCase, possibly - make repo a class member instead of an instance member -* Derive from Iterable, simple pipe it through to Commit objects and iterate using - commit.tree. - - + make repo a class member instead of an instance member -- cgit v1.2.3 From 5e52a00c81d032b47f1bc352369be3ff8eb87b27 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 21 Oct 2009 17:00:40 +0200 Subject: repo.is_dirty: fixed incorrect check of a dirty working tree, previously it would compare HEAD against the working tree, not the index which was intended --- TODO | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 0915806d..75a0fb09 100644 --- a/TODO +++ b/TODO @@ -59,5 +59,12 @@ Tree testing whether it raises on invalid input ? ). See 6dc7799d44e1e5b9b77fd19b47309df69ec01a99 * Derive from Iterable, simple pipe it through to Commit objects and iterate using commit.tree. + +Testing +------- +* Create a test-repository that can be written to and changed in addition to the normal + read-only testing scheme that operates on the own repository. Doing this could be a simple + as forking a shared repo in a tmp directory. In that moment, we probably want to + facility committing and checkouts as well. -- cgit v1.2.3 From d97afa24ad1ae453002357e5023f3a116f76fb17 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 21 Oct 2009 18:40:35 +0200 Subject: Improved testing of index against trees, tests succeed with next commit --- TODO | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'TODO') diff --git a/TODO b/TODO index 93ca313a..460780d3 100644 --- a/TODO +++ b/TODO @@ -14,7 +14,10 @@ General deleted. * References should be parsed 'manually' to get around command invocation, but be sure to be able to read packed refs. - +* Effectively Objects only store hexsha's in their id attributes, so in fact + it should be renamed to 'sha'. There was a time when references where allowed as + well, but now objects will be 'baked' to the actual sha to assure comparisons work. + Config ------ * Expand .get* methods of GitConfigParser to support default value. If it is not None, -- cgit v1.2.3 From 3c9f55dd8e6697ab2f9eaf384315abd4cbefad38 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 21 Oct 2009 22:53:51 +0200 Subject: remote: Added fetch, pull, push methods to the interface to make these operations more convenient, like repo.remotes.origin.fetch --- TODO | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 75a0fb09..03179467 100644 --- a/TODO +++ b/TODO @@ -41,6 +41,11 @@ Index * Index Merge ( merge two trees into the index to quickly see conflicts ). Its possible to write it into a separate index file that can be read separately. +Remote +------ +* 'push' method needs a test, a true test repository is required though, a fork + of a fork would do :)! + Repo ---- * Nice fetch/pull handling, at least supported/wired throuhg to the git command @@ -66,5 +71,6 @@ Testing read-only testing scheme that operates on the own repository. Doing this could be a simple as forking a shared repo in a tmp directory. In that moment, we probably want to facility committing and checkouts as well. + - Use these tests for git-remote as we need to test push -- cgit v1.2.3 From 7b50af0a20bcc7280940ce07593007d17c5acabd Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 21 Oct 2009 23:11:40 +0200 Subject: index: Added write_tree method including test --- TODO | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 460780d3..14d65e26 100644 --- a/TODO +++ b/TODO @@ -37,12 +37,13 @@ Overhaul docs - check examples, check looks, improve existing docs Index ----- -* Index class required for special handling ? Probably considering what I want - to do ! Dulwich can already write the index, and read trees, although it - could be improved as well and could possibly be made faster unless we want - to use the c modules ( not for now ) -* Index Merge ( merge two trees into the index to quickly see conflicts ). - Its possible to write it into a separate index file that can be read separately. +* write_tree should write a tree directly, which would require ability to create + objects in the first place. Should be rather simple as it is + "tree" bytes datablock | sha1sum and zipped. + Currently we use some file swapping and the git command to do it which probably + is much slower. The thing is that properly writing a tree from an index involves + creating several tree objects, so in the end it might be slower. + Hmm, probably its okay to use the command unless we go c(++) Repo ---- -- cgit v1.2.3 From 33fa178eeb7bf519f5fff118ebc8e27e76098363 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 22 Oct 2009 11:04:30 +0200 Subject: added Object.data_stream property allowing to stream object data directly.Considering the implementation of the git commnd which temporarily keeps it in a cache, it doesnt make a huge diffence as the data is kept in memory while streaming. Only good thing is that it is in a different process so python will never see it if done properly --- TODO | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 03179467..f1b49a0c 100644 --- a/TODO +++ b/TODO @@ -15,6 +15,18 @@ General * References should be parsed 'manually' to get around command invocation, but be sure to be able to read packed refs. +Object +------ +* DataStream method should read the data itself. This would be easy once you have + the actul loose object, but will be hard if it is in a pack. In a distant future, + we might be able to do that or at least implement direct object reading for loose + objects ( to safe a command call ). Currently object information comes from + persistent commands anyway, so the penalty is not that high. The data_stream + though is not based on persistent commands. + It would be good to improve things there as cat-file keeps all the data in a buffer + before it writes it. Hence it does not write to a stream directly, which can be + bad if files are large, say 1GB :). + Config ------ * Expand .get* methods of GitConfigParser to support default value. If it is not None, -- cgit v1.2.3 From 20c34a929a8b2871edd4fd44a38688e8977a4be6 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 22 Oct 2009 17:40:04 +0200 Subject: =?UTF-8?q?Added=20reset=20method=20to=20Head=20-=20its=20a=20clas?= =?UTF-8?q?s=20method=20due=20to=20the=20very=20general=20nature=20of=20th?= =?UTF-8?q?e=20command.=20Yet=20I=20don't=20really=20like=20the=20way=20yo?= =?UTF-8?q?u=20have=20to=20call=20it=20as=20repo=20has=20to=20be=20?= =?UTF-8?q?=E1=B9=95assed=20as=20first=20arg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index afda659a..db77df67 100644 --- a/TODO +++ b/TODO @@ -11,7 +11,8 @@ General a sha or ref unless cat-file is used where it must be a sha * Overhaul command caching - currently its possible to create many instances of the std-in command types, as it appears they are not killed when the repo gets - deleted. + deleted. A clear() method could already help to allow long-running programs + to remove cached commands after an idle time. * References should be parsed 'manually' to get around command invocation, but be sure to be able to read packed refs. @@ -64,7 +65,6 @@ Remote Repo ---- -* Nice fetch/pull handling, at least supported/wired throuhg to the git command * Blame: Read the blame format making assumptions about its structure, currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command @@ -78,13 +78,4 @@ Tree * Should return submodules during iteration ( identifies as commit ) * Work through test and check for test-case cleanup and completeness ( what about testing whether it raises on invalid input ? ). See 6dc7799d44e1e5b9b77fd19b47309df69ec01a99 - -Testing -------- -* Create a test-repository that can be written to and changed in addition to the normal - read-only testing scheme that operates on the own repository. Doing this could be a simple - as forking a shared repo in a tmp directory. In that moment, we probably want to - facility committing and checkouts as well. - - Use these tests for git-remote as we need to test push - - Also assure that the test-case setup is a bit more consistent ( Derive from TestCase, possibly - make repo a class member instead of an instance member + -- cgit v1.2.3 From ea33fe8b21d2b02f902b131aba0d14389f2f8715 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 22 Oct 2009 22:14:02 +0200 Subject: Index: Is now diffable and appears to properly implement diffing against other items as well as the working tree Diff.Diffable: added callback allowing superclasses to preprocess diff arguments Diff.Diff: added eq, ne and hash methods, string methods would be nice --- TODO | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index db77df67..3e743e65 100644 --- a/TODO +++ b/TODO @@ -58,6 +58,15 @@ Index creating several tree objects, so in the end it might be slower. Hmm, probably its okay to use the command unless we go c(++) + +Head.reset +---------- +* Should better be an instance method. Problem was that there is no class specifying + the HEAD - in a way reset would always effect the active branch. + Probably it would be okay to have a special type called SymbolicReference + which represents items like HEAD. These could naturally carry the reset + instance method. + Remote ------ * 'push' method needs a test, a true test repository is required though, a fork -- cgit v1.2.3 From 58e2157ad3aa9d75ef4abb90eb2d1f01fba0ba2b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 22 Oct 2009 23:20:16 +0200 Subject: Added SymbolicReference and HEAD type to better represent these special types of references and allow special handling Head.reset now is an instance method of HEAD type Concatenated all reference specific tests into test_refs started to fix tests breaking now because of changed interface --- TODO | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 3e743e65..5ec71dc3 100644 --- a/TODO +++ b/TODO @@ -58,14 +58,12 @@ Index creating several tree objects, so in the end it might be slower. Hmm, probably its okay to use the command unless we go c(++) - -Head.reset ----------- -* Should better be an instance method. Problem was that there is no class specifying - the HEAD - in a way reset would always effect the active branch. - Probably it would be okay to have a special type called SymbolicReference - which represents items like HEAD. These could naturally carry the reset - instance method. +Refs +----- +* If the HEAD is detached as it points to a specific commit, its not technically + a symbolic reference anymore. Currently, we cannot handle this that well + as we do not check for this case. This should be added though as it is + valid to have a detached head in some cases. Remote ------ -- cgit v1.2.3 From b7a5c05875a760c0bf83af6617c68061bda6cfc5 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 22 Oct 2009 23:31:26 +0200 Subject: Adjusted tests to deal with API changes --- TODO | 2 ++ 1 file changed, 2 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 5ec71dc3..c202fcb8 100644 --- a/TODO +++ b/TODO @@ -64,6 +64,8 @@ Refs a symbolic reference anymore. Currently, we cannot handle this that well as we do not check for this case. This should be added though as it is valid to have a detached head in some cases. +* Allow to set SymbolicReferences to a specific Head Reference. This is like + a git-reset --soft Remote ------ -- cgit v1.2.3 From d1bd99c0a376dec63f0f050aeb0c40664260da16 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 00:13:09 +0200 Subject: SymbolicReferences can now change they references safely as I think and well controlled, including test. Added commit method which will return the commit for detached symbolic refs or for normal symbolic refs which is quite convenient --- TODO | 2 -- 1 file changed, 2 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index c202fcb8..5ec71dc3 100644 --- a/TODO +++ b/TODO @@ -64,8 +64,6 @@ Refs a symbolic reference anymore. Currently, we cannot handle this that well as we do not check for this case. This should be added though as it is valid to have a detached head in some cases. -* Allow to set SymbolicReferences to a specific Head Reference. This is like - a git-reset --soft Remote ------ -- cgit v1.2.3 From 3d3a24b22d340c62fafc0e75a349c0ffe34d99d7 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 11:07:04 +0200 Subject: Added repo.index property including simple test, and additional ideas in the TODO list --- TODO | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 5ec71dc3..f283b244 100644 --- a/TODO +++ b/TODO @@ -50,32 +50,44 @@ Overhaul docs - check examples, check looks, improve existing docs Index ----- -* write_tree should write a tree directly, which would require ability to create +* [advanced] + write_tree should write a tree directly, which would require ability to create objects in the first place. Should be rather simple as it is "tree" bytes datablock | sha1sum and zipped. Currently we use some file swapping and the git command to do it which probably is much slower. The thing is that properly writing a tree from an index involves creating several tree objects, so in the end it might be slower. Hmm, probably its okay to use the command unless we go c(++) +* Proper merge handling with index and working copy +* Checkout individual blobs using the index and git-checkout. Blobs can already + be written using their stream_data method. Refs ----- -* If the HEAD is detached as it points to a specific commit, its not technically - a symbolic reference anymore. Currently, we cannot handle this that well - as we do not check for this case. This should be added though as it is - valid to have a detached head in some cases. - +* When adjusting the reference of a symbolic reference, the ref log might need + adjustments as well. This is not critical, but would make things totally 'right' +* Reference Objects should be able to set the commit they are pointing to, making + the commit property read-write. Tags are a special case of this and would need + to be handled as well ! +* Ability to create new heads and tags in the Repository ( but using the respective + Reference Type ), i.e. Head.create(repo, name, commit = 'HEAD') or + TagReference.create(repo, name +* Ability to rename references and tags +* Ability to remove references and tags + Remote ------ * 'push' method needs a test, a true test repository is required though, a fork of a fork would do :)! +* Fetch should return heads that where updated, pull as well. Repo ---- * Blame: Read the blame format making assumptions about its structure, currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command - +* Figure out how to implement a proper merge API + Submodules ---------- * add submodule support -- cgit v1.2.3 From a7a4388eeaa4b6b94192dce67257a34c4a6cbd26 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 12:14:22 +0200 Subject: Added frame for IndexFile add/remove/commit methods and respective test markers --- TODO | 3 +++ 1 file changed, 3 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index f283b244..7771cedf 100644 --- a/TODO +++ b/TODO @@ -58,6 +58,7 @@ Index is much slower. The thing is that properly writing a tree from an index involves creating several tree objects, so in the end it might be slower. Hmm, probably its okay to use the command unless we go c(++) +* Implement diff so that temporary indices can be used as well ( using file swapping ) * Proper merge handling with index and working copy * Checkout individual blobs using the index and git-checkout. Blobs can already be written using their stream_data method. @@ -74,6 +75,8 @@ Refs TagReference.create(repo, name * Ability to rename references and tags * Ability to remove references and tags +* Ability to checkout a reference - +* Check whether we are the active reference HEAD.commit == self.commit Remote ------ -- cgit v1.2.3 From ddc5496506f0484e4f1331261aa8782c7e606bf2 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 15:22:07 +0200 Subject: Implemented head methods: create, delete, rename, including tests --- TODO | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'TODO') diff --git a/TODO b/TODO index 7771cedf..6d548a15 100644 --- a/TODO +++ b/TODO @@ -73,7 +73,7 @@ Refs * Ability to create new heads and tags in the Repository ( but using the respective Reference Type ), i.e. Head.create(repo, name, commit = 'HEAD') or TagReference.create(repo, name -* Ability to rename references and tags +* Ability to rename references and tagsre * Ability to remove references and tags * Ability to checkout a reference - * Check whether we are the active reference HEAD.commit == self.commit @@ -83,6 +83,8 @@ Remote * 'push' method needs a test, a true test repository is required though, a fork of a fork would do :)! * Fetch should return heads that where updated, pull as well. +* Creation and deletion methods for references should be part of the interface, allowing + repo.create_head(...) instaed of Head.create(repo, ...). Its a convenience thing, clearly Repo ---- -- cgit v1.2.3 From 9b9776e88f7abb59cebac8733c04cccf6eee1c60 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 16:07:45 +0200 Subject: Refs can now set the reference they are pointing to in a controlled fashion by writing their ref file directly --- TODO | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 6d548a15..c2cc804b 100644 --- a/TODO +++ b/TODO @@ -67,15 +67,7 @@ Refs ----- * When adjusting the reference of a symbolic reference, the ref log might need adjustments as well. This is not critical, but would make things totally 'right' -* Reference Objects should be able to set the commit they are pointing to, making - the commit property read-write. Tags are a special case of this and would need - to be handled as well ! -* Ability to create new heads and tags in the Repository ( but using the respective - Reference Type ), i.e. Head.create(repo, name, commit = 'HEAD') or - TagReference.create(repo, name -* Ability to rename references and tagsre -* Ability to remove references and tags -* Ability to checkout a reference - + - same with adjusting references directly * Check whether we are the active reference HEAD.commit == self.commit Remote -- cgit v1.2.3 From 44a601a068f4f543f73fd9c49e264c931b1e1652 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 16:51:59 +0200 Subject: Added notes about git-update-ref --- TODO | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'TODO') diff --git a/TODO b/TODO index c2cc804b..d44842f6 100644 --- a/TODO +++ b/TODO @@ -68,7 +68,12 @@ Refs * When adjusting the reference of a symbolic reference, the ref log might need adjustments as well. This is not critical, but would make things totally 'right' - same with adjusting references directly -* Check whether we are the active reference HEAD.commit == self.commit + !! - Could simply rewrite it using git-update-ref which works nicely for symbolic + and for normal refs !! +* Check whether we are the active reference HEAD.reference == this_ref + - NO: The reference dosnt need to know - in fact it does not know about the + main HEAD, so it may not use it. This is to be done in client code only. + Remove me Remote ------ -- cgit v1.2.3 From 0cd09bd306486028f5442c56ef2e947355a06282 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 23 Oct 2009 21:49:13 +0200 Subject: index.remove implemented including throrough test --- TODO | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 7771cedf..9e217484 100644 --- a/TODO +++ b/TODO @@ -62,6 +62,15 @@ Index * Proper merge handling with index and working copy * Checkout individual blobs using the index and git-checkout. Blobs can already be written using their stream_data method. +* index.add: could be implemented in python together with hash-object, allowing + to keep the internal entry cache and write once everything is done. Problem + would be that all other git commands are unaware of the changes unless the index + gets written. Its worth an evaluation at least. +* index.remove: On windows, there can be a command line length overflow + as we pass the paths directly as argv. This is as we use git-rm to be able + to remove whole directories easily. This could be implemented using + git-update-index if this becomes an issue, but then we had to do all the globbing + and directory removal ourselves Refs ----- -- cgit v1.2.3 From f9cec00938d9059882bb8eabdaf2f775943e00e5 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Sat, 24 Oct 2009 00:08:33 +0200 Subject: index.commit: implemented initial version, but in fact some more changes are required to have a nice API. Tests are not yet fully done either --- TODO | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 9e217484..17c6480a 100644 --- a/TODO +++ b/TODO @@ -31,6 +31,12 @@ Object it should be renamed to 'sha'. There was a time when references where allowed as well, but now objects will be 'baked' to the actual sha to assure comparisons work. +Commit +------ +* message is stipped during parsing, which is wrong unless we parse from + rev-list output. In fact we don't know that, and can't really tell either. + Currently we strip away white space that might actually belong to the message + Config ------ * Expand .get* methods of GitConfigParser to support default value. If it is not None, @@ -71,6 +77,11 @@ Index to remove whole directories easily. This could be implemented using git-update-index if this becomes an issue, but then we had to do all the globbing and directory removal ourselves +* commit: advance head = False - tree object should get the base commit wrapping + that index uses after writing itself as tree. Perhaps it would even be better + to have a Commit.create method from a tree or from an index. Allowing the + latter would be quite flexible and would fit into the system as refs have + create methods as well Refs ----- -- cgit v1.2.3 From 0ef1f89abe5b2334705ee8f1a6da231b0b6c9a50 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 26 Oct 2009 22:37:48 +0100 Subject: index.add: Finished implemenation including through tests index.checkout: added simple method allowing to checkout files from the index, including simple test --- TODO | 2 ++ 1 file changed, 2 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 69fbc307..d841f774 100644 --- a/TODO +++ b/TODO @@ -72,6 +72,8 @@ Index to keep the internal entry cache and write once everything is done. Problem would be that all other git commands are unaware of the changes unless the index gets written. Its worth an evaluation at least. + A problem going with it is that there might be shell-related limitations on non-unix + where the commandline grows too large. * index.remove: On windows, there can be a command line length overflow as we pass the paths directly as argv. This is as we use git-rm to be able to remove whole directories easily. This could be implemented using -- cgit v1.2.3 From 5047344a22ed824735d6ed1c91008767ea6638b7 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 27 Oct 2009 20:09:50 +0100 Subject: Added testing frame for proper fetch testing to be very sure this works as expected. Plenty of cases still to be tested --- TODO | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index d841f774..4dced9c6 100644 --- a/TODO +++ b/TODO @@ -96,6 +96,9 @@ Refs - NO: The reference dosnt need to know - in fact it does not know about the main HEAD, so it may not use it. This is to be done in client code only. Remove me +* Reference.from_path may return a symbolic reference although it is not related + to the reference type. Split that up into two from_path on each of the types, + and provide a general method outside of the type that tries both. Remote ------ @@ -104,6 +107,10 @@ Remote * Fetch should return heads that where updated, pull as well. * Creation and deletion methods for references should be part of the interface, allowing repo.create_head(...) instaed of Head.create(repo, ...). Its a convenience thing, clearly +* When parsing fetch-info, the regex will have problems properly handling white-space in the + actual head or tag name as it does not know when the optional additional message will begin. + This can possibly improved by making stronger assumptions about the possible messages or + by using the data from FETCH_HEAD instead or as additional source of information Repo ---- -- cgit v1.2.3 From 038f183313f796dc0313c03d652a2bcc1698e78e Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 27 Oct 2009 20:46:26 +0100 Subject: implemented test for rejection handling and fixed a bug when parsing remote reference paths --- TODO | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 4dced9c6..869d9003 100644 --- a/TODO +++ b/TODO @@ -107,10 +107,9 @@ Remote * Fetch should return heads that where updated, pull as well. * Creation and deletion methods for references should be part of the interface, allowing repo.create_head(...) instaed of Head.create(repo, ...). Its a convenience thing, clearly -* When parsing fetch-info, the regex will have problems properly handling white-space in the - actual head or tag name as it does not know when the optional additional message will begin. - This can possibly improved by making stronger assumptions about the possible messages or - by using the data from FETCH_HEAD instead or as additional source of information +* When parsing fetch-info, the regex will not allow spaces in the target remote ref as + I couldn't properly parse the optional space separated note in that case. Probably + the regex should be improved to handle this gracefully. Repo ---- -- cgit v1.2.3 From 146a6fe18da94e12aa46ec74582db640e3bbb3a9 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 28 Oct 2009 12:00:58 +0100 Subject: IterableList: added support for prefix allowing remote.refs.master constructs, previously it was remote.refs['%s/master'%remote] Added first simple test for push support, which shows that much more work is needed on that side to allow just-in-time progress information --- TODO | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 869d9003..038086e5 100644 --- a/TODO +++ b/TODO @@ -117,6 +117,11 @@ Repo currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command * Figure out how to implement a proper merge API +* There should be a way to create refs and delete them, instead of having to use + the awkward Head.create( repo, ... ) way +* repo.checkout should be added that does everything HEAD.reset does, but in addition + it allows to checkout heads beforehand, hence its more like a repo.head.reference = other_head. + Submodules ---------- -- cgit v1.2.3 From a519942a295cc39af4eebb7ba74b184decae13fb Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 28 Oct 2009 18:09:18 +0100 Subject: Tried to use shallow repository - this works in case it is remote, but unfortunately, deepening the repository fails if the server is used. This is bad, but a workaround is to create another shared repo which pushes a changes that we fetch into our given repo. This should provide more output to properly test the fetch handling. Harder than I thought --- TODO | 2 ++ 1 file changed, 2 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 038086e5..08c77a74 100644 --- a/TODO +++ b/TODO @@ -43,6 +43,8 @@ Config it will be returned instead of raising. This way the class will be much more usable, and ... I truly hate this config reader as it is so 'old' style. Its not even a new-style class yet showing that it must be ten years old. + - If you are at it, why not start a new project that reimplements the ConfigWriter + properly, honestly. Tune it for usability ... . Diff ---- -- cgit v1.2.3 From 8b5121414aaf2648b0e809e926d1016249c0222c Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 28 Oct 2009 22:17:39 +0100 Subject: Another attempt to make fetch emit progress information, but in fact its proven now that this is not happening if stderr is being redirected. A test is in place that will most likely fail in case this ever changes --- TODO | 2 ++ 1 file changed, 2 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 08c77a74..3a31976c 100644 --- a/TODO +++ b/TODO @@ -104,6 +104,8 @@ Refs Remote ------ +* iter_items should parse the configuration file manually - currently a command + is issued which is much slower than it has to be ( compared to manual parsing ) * 'push' method needs a test, a true test repository is required though, a fork of a fork would do :)! * Fetch should return heads that where updated, pull as well. -- cgit v1.2.3 From e70f3218e910d2b3dcb8a5ab40c65b6bd7a8e9a8 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 14:04:32 +0100 Subject: Intermediate commit with a few added and improved tests as well as many fixes --- TODO | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index 3a31976c..49d6728c 100644 --- a/TODO +++ b/TODO @@ -131,6 +131,16 @@ Submodules ---------- * add submodule support +TestSystem +---------- +* Figure out a good way to indicate the required presense of a git-daemon to host + a specific path. Ideally, the system would detect the missing daemon and inform + the user about the required command-line to start the daemon where we need it. + Reason for us being unable to start a daemon is that it will always fork - we can + only kill itself, but not its children. Even if we would a pgrep like match, we still + would not know whether it truly is our daemons - in that case user permissions should + stop us though. + Tree ---- * Should return submodules during iteration ( identifies as commit ) -- cgit v1.2.3 From ec3d91644561ef59ecdde59ddced38660923e916 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 14:28:22 +0100 Subject: Finished all push tests I could think of so far. More error cases should be studied, but they would be hard to 'produce' --- TODO | 3 --- 1 file changed, 3 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 49d6728c..147eb02d 100644 --- a/TODO +++ b/TODO @@ -106,9 +106,6 @@ Remote ------ * iter_items should parse the configuration file manually - currently a command is issued which is much slower than it has to be ( compared to manual parsing ) -* 'push' method needs a test, a true test repository is required though, a fork - of a fork would do :)! -* Fetch should return heads that where updated, pull as well. * Creation and deletion methods for references should be part of the interface, allowing repo.create_head(...) instaed of Head.create(repo, ...). Its a convenience thing, clearly * When parsing fetch-info, the regex will not allow spaces in the target remote ref as -- cgit v1.2.3 From dbc18b92362f60afc05d4ddadd6e73902ae27ec7 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 15:52:45 +0100 Subject: repo: added create_* and delete_* methods for refs ( head, tag, remote ) as a convenient shortcut to using the classes manually --- TODO | 4 ---- 1 file changed, 4 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 147eb02d..e77ba340 100644 --- a/TODO +++ b/TODO @@ -106,8 +106,6 @@ Remote ------ * iter_items should parse the configuration file manually - currently a command is issued which is much slower than it has to be ( compared to manual parsing ) -* Creation and deletion methods for references should be part of the interface, allowing - repo.create_head(...) instaed of Head.create(repo, ...). Its a convenience thing, clearly * When parsing fetch-info, the regex will not allow spaces in the target remote ref as I couldn't properly parse the optional space separated note in that case. Probably the regex should be improved to handle this gracefully. @@ -118,8 +116,6 @@ Repo currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command * Figure out how to implement a proper merge API -* There should be a way to create refs and delete them, instead of having to use - the awkward Head.create( repo, ... ) way * repo.checkout should be added that does everything HEAD.reset does, but in addition it allows to checkout heads beforehand, hence its more like a repo.head.reference = other_head. -- cgit v1.2.3 From 3cb5ba18ab1a875ef6b62c65342de476be47871b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 16:35:33 +0100 Subject: object: renamed id attribute to sha as it in fact is always being rewritten as sha, even if the passed in id was a ref. This is done to assure objects are uniquely identified and will compare correctly --- TODO | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index e77ba340..5fa2477d 100644 --- a/TODO +++ b/TODO @@ -27,15 +27,6 @@ Object It would be good to improve things there as cat-file keeps all the data in a buffer before it writes it. Hence it does not write to a stream directly, which can be bad if files are large, say 1GB :). -* Effectively Objects only store hexsha's in their id attributes, so in fact - it should be renamed to 'sha'. There was a time when references where allowed as - well, but now objects will be 'baked' to the actual sha to assure comparisons work. - -Commit ------- -* message is stipped during parsing, which is wrong unless we parse from - rev-list output. In fact we don't know that, and can't really tell either. - Currently we strip away white space that might actually belong to the message Config ------ @@ -115,7 +106,9 @@ Repo * Blame: Read the blame format making assumptions about its structure, currently regex are used a lot although we can deduct what will be next. - Read data from a stream directly from git command -* Figure out how to implement a proper merge API +* Figure out how to implement a proper merge API. It should be index based, but provide + all necessary information to the ones willing to ask for it. The index implementation + actually provides this already, but some real use-cases would be great to have a least. * repo.checkout should be added that does everything HEAD.reset does, but in addition it allows to checkout heads beforehand, hence its more like a repo.head.reference = other_head. -- cgit v1.2.3 From 572ace094208c28ab1a8641aedb038456d13f70b Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 17:44:13 +0100 Subject: Now using git-update-ref and git-symbolic-ref to update references with reflog support. This should be manually implemented though for more performance, what it does is relatively easy --- TODO | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 5fa2477d..0fe33050 100644 --- a/TODO +++ b/TODO @@ -80,11 +80,12 @@ Index Refs ----- -* When adjusting the reference of a symbolic reference, the ref log might need - adjustments as well. This is not critical, but would make things totally 'right' - - same with adjusting references directly - !! - Could simply rewrite it using git-update-ref which works nicely for symbolic - and for normal refs !! +* For performance reasons it would be good to reimplement git-update-ref to be + fully equivalent to what the command does. Currently it does some checking and + handles symbolic refs as well as normal refs, updating the reflog if required. +* I have read that refs can be symbolic refs as well which would imply the need + to possibly dereference them. This makes sense as they originally where possibly + a symbolic link * Check whether we are the active reference HEAD.reference == this_ref - NO: The reference dosnt need to know - in fact it does not know about the main HEAD, so it may not use it. This is to be done in client code only. @@ -92,6 +93,7 @@ Refs * Reference.from_path may return a symbolic reference although it is not related to the reference type. Split that up into two from_path on each of the types, and provide a general method outside of the type that tries both. +* Making the reflog available might be useful actually. Remote ------ -- cgit v1.2.3 From 9b426893ce331f71165c82b1a86252cd104ae3db Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 18:04:40 +0100 Subject: Reference.from_path now only creates references, not symbolic refs. SymbolicReference.from_path creates only symbolic refs. This change was not detected by a test, hence there is room for improvement on the testing field --- TODO | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 0fe33050..a350bf55 100644 --- a/TODO +++ b/TODO @@ -85,15 +85,11 @@ Refs handles symbolic refs as well as normal refs, updating the reflog if required. * I have read that refs can be symbolic refs as well which would imply the need to possibly dereference them. This makes sense as they originally where possibly - a symbolic link -* Check whether we are the active reference HEAD.reference == this_ref - - NO: The reference dosnt need to know - in fact it does not know about the - main HEAD, so it may not use it. This is to be done in client code only. - Remove me -* Reference.from_path may return a symbolic reference although it is not related - to the reference type. Split that up into two from_path on each of the types, - and provide a general method outside of the type that tries both. -* Making the reflog available might be useful actually. + a symbolic link. This would mean References could be derived from SymbolicReference + officially, but it would still be bad as not all References are symbolic ones. +* Making the reflog available as command might be useful actually. This way historical + references/commits can be returned. Git internally manages this if refs are specified + with HEAD@{0} for instance Remote ------ -- cgit v1.2.3 From e648efdcc1ca904709a646c1dbc797454a307444 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 19:49:38 +0100 Subject: remotes are now retrieved directly by parsing the repository configuration file. This removes a git command invocation --- TODO | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index a350bf55..dc87c8b6 100644 --- a/TODO +++ b/TODO @@ -13,8 +13,6 @@ General the std-in command types, as it appears they are not killed when the repo gets deleted. A clear() method could already help to allow long-running programs to remove cached commands after an idle time. -* References should be parsed 'manually' to get around command invocation, but - be sure to be able to read packed refs. Object ------ @@ -83,6 +81,7 @@ Refs * For performance reasons it would be good to reimplement git-update-ref to be fully equivalent to what the command does. Currently it does some checking and handles symbolic refs as well as normal refs, updating the reflog if required. + Its low-priority though as we don't set references directly that often. * I have read that refs can be symbolic refs as well which would imply the need to possibly dereference them. This makes sense as they originally where possibly a symbolic link. This would mean References could be derived from SymbolicReference @@ -90,11 +89,11 @@ Refs * Making the reflog available as command might be useful actually. This way historical references/commits can be returned. Git internally manages this if refs are specified with HEAD@{0} for instance - +* References should be parsed 'manually' to get around command invocation, but + be sure to be able to read packed refs. + Remote ------ -* iter_items should parse the configuration file manually - currently a command - is issued which is much slower than it has to be ( compared to manual parsing ) * When parsing fetch-info, the regex will not allow spaces in the target remote ref as I couldn't properly parse the optional space separated note in that case. Probably the regex should be improved to handle this gracefully. -- cgit v1.2.3 From 43ab2afba68fd0e1b5d138ed99ffc788dc685e36 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Tue, 3 Nov 2009 20:59:24 +0100 Subject: refs: iter_items now imlemented natively for additional performance. We did not implement the crazy sorting feature found in git-for-each-ref though --- TODO | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index dc87c8b6..729bb07b 100644 --- a/TODO +++ b/TODO @@ -89,9 +89,9 @@ Refs * Making the reflog available as command might be useful actually. This way historical references/commits can be returned. Git internally manages this if refs are specified with HEAD@{0} for instance -* References should be parsed 'manually' to get around command invocation, but - be sure to be able to read packed refs. - +* Possibly follow symbolic links when manually parsing references by walking the + directory tree. Currently the packed-refs file wouldn't be followed either. + Remote ------ * When parsing fetch-info, the regex will not allow spaces in the target remote ref as @@ -113,6 +113,7 @@ Repo Submodules ---------- * add submodule support +* see tree TestSystem ---------- -- cgit v1.2.3 From 20ef1924b832a3788849793c0ee6b46dd00d4520 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 4 Nov 2009 11:27:58 +0100 Subject: initial work on tutorial.rst --- TODO | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'TODO') diff --git a/TODO b/TODO index 729bb07b..42e353f2 100644 --- a/TODO +++ b/TODO @@ -43,7 +43,11 @@ Diff Docs ---- -Overhaul docs - check examples, check looks, improve existing docs +* Overhaul docs - check examples, check looks, improve existing docs +* Config: auto-generated module does not appear at all ( except for two lines ) + - its probably related to some fishy error lines: + :0: (ERROR/3) Unexpected indentation. + :0: (ERROR/3) Unexpected indentation. Index ----- -- cgit v1.2.3 From ace1fed6321bb8dd6d38b2f58d7cf815fa16db7a Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 4 Nov 2009 19:36:29 +0100 Subject: head.checkout method added including test --- TODO | 2 -- 1 file changed, 2 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 42e353f2..15847102 100644 --- a/TODO +++ b/TODO @@ -110,8 +110,6 @@ Repo * Figure out how to implement a proper merge API. It should be index based, but provide all necessary information to the ones willing to ask for it. The index implementation actually provides this already, but some real use-cases would be great to have a least. -* repo.checkout should be added that does everything HEAD.reset does, but in addition - it allows to checkout heads beforehand, hence its more like a repo.head.reference = other_head. Submodules -- cgit v1.2.3