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