Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Thomas Keller
Am 10.05.2010 04:52, schrieb Derek Scherger:
 On Sun, May 9, 2010 at 5:28 PM, Thomas Keller m...@thomaskeller.biz wrote:
 
 * #20447: mtn diff filename fails inside of a renamed directory
  - net.venge.monotone.bugfest-2010.20447-dscherger
  - @Derek: whats your plan here? Is this reviewable?

 
 I spent most of the day working on this and made some big changes
 (reimplementing diff in terms of rosters rather than csets) but they didn't
 actually fix the problem, which turns out to be somewhat complicated. I was
 out for a long drive today and spent quite a lot of time thinking about it.
 I have some ideas but I'm not yet sure if they'll work out or not. I'll
 follow up with another email explaining the details.

Ok, fine!

 * #12773: show which branch a tag belongs to
  - net.venge.monotone.bugfest-2010.12273-dscherger
  - Patch looks cool, a test would be nice though. Wrt space issues,
  we could shorten the revision to gain additional space - I think
  the chance of finding two partial tagged revisions which can be
  completed to two different full revision ids is rather low.
  - points: 5 to Derek (if you add a test :)

 
 OK, adding a test should be easy. Do we have something to produce short
 revision ids or should I just grab the first N chars or something?

Not yet currently, and I fear we might even have different visual
representations already (f.e. some with ..., some without). Although
shortening a string is a very simple task, I think it would be a good
idea to have one function in a central place which does that for the id
type we have (and returns a string).

 * #13604: need 'undelete' ('undrop'?)
  - net.venge.monotone.bugfest-2010.13604-stephen_leake
  - patch looks largely cool, some minor objections:
revert = not undrop; - is the not operator portable?
bool undrop function argument - an enum would be cool :)
  - possible issue left: undrop does not work correctly when
 called on a dropped directory without --recursive. It still
 re-creates all childs of the directory, while one would assume
 that only the directory itself is recreated (and all the other
 files keep dropped)
  - points: 5 to Stephe (if the remaining issues are sorted out)

 
 I'm somewhat curious about  this one but I haven't looked at the bug or the
 fixes yet. Is undrop/undelete somehow different from revert or is this just
 a command alias?

Stephe can comment more here, basically it calls into revert's code, but
with a few more bells and whistles.

 Other than that I'm quite happy with the results. We've closed many bugs
 and I think we should do that again some time in the future to bring
 down the bug count even more.

 
 Agreed. I personally find having a few people around working at the same
 time is  quite motivating.

Yep, absolutely.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en




signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] diff bug 20447

2010-05-10 Thread Thomas Keller
Am 10.05.2010 06:06, schrieb Derek Scherger:
 At the moment these changes result in slightly different diff output for
 additions and deletions which both now use /dev/null for one file (the
 source for adds and the target for deletes). There's a big comment in
 diff_output.cc that made this seem like the right approach. This new
 implementation currently does output a diff against /dev/null for a deletion
 where previously we simply didn't display anything. I'm not sure which is
 preferable but it's trivial to change, maybe we even want an option to
 control this? The new implementation also shows the both names involved when
 a rename occurs although I'm not sure if this is such a good idea as it may
 confuse patch and friends. Changing this is also trivial.

It always stroke me quite odd why our diffs contain file additions, but
not deletions, especially since this is the only way to tell standard
patch tools to delete the file / the contents, so this change is greatly
appreciated. Other than that we should test if standard patch accepts
the rename information (and even acts accordingly) - if yes, this should
not be a problem, since most tools behave patch-compliant anyways.

 This problem is closely related to the problem of adding a directory d, then
 adding a file f to it and then restricting a commit to just the file d/f
 which fails because the directory addition is excluded. One fix for this
 would be to change the restrictions code so that including a file implicitly
 includes changes to all of its parent directories (non-recursively). So a
 commit of d/f would include d and d/f but not other children of d. I'm not
 sure if there are other ways we could deal with this.
 
 In the case of mv d d2 above if we include parents of f committing d2/f
 would also commit the rename of d to d2. This would effectively rename all
 other children x of d to d2/x as well which seems somewhat questionable,
 although it might be better than failing with 'mtn: misuse: file d/f does
 not exist'.

I'm also for this solution, because I think the parent rename is
expected to happen as well from a user's point of view (well, at least
mine, because I think this is much more consistent :). If the user
doesn't want that other files change from d/x to d2/x, he simply has to
commit the patch before he starts renaming anything.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en




signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Thomas Keller
Am 10.05.2010 05:23, schrieb Timothy Brownawell:
 On 05/09/2010 06:28 PM, Thomas Keller wrote:
 
 * #17878: Usability: too easy to accidentally fork after
merge or disapprove
-  branch is net.venge.monotone.bugfest-2010.17878-tbrownaw
-  @Tim: is this done?
 
 It needs a test using the --update option, which I'll get to either in
 the morning or after work tomorrow. I suppose I should also put a note
 in NEWS about setting your get_default_command_options() if you want to
 always have that behavior.

Ok, cool.

 * #16895: Better error reporting in permission-denied scenarios
-  @Tim: Do you think of anything in particular (but not a very
good one)? Maybe this is worth a tiny patch...
-  points: 1 to Tim
 
 I think it's improved since that post.

Ah right, I totally oversaw the date of your comment... ;)

 Other than that I'm quite happy with the results. We've closed many bugs
 and I think we should do that again some time in the future to bring
 down the bug count even more.
 
 Maybe try for every 6 months or so? If it's too often we'd probably get
 lower participation on any particular date, which wouldn't work at all
 at our size.

Lets try to do that every two or three months - I think six months are
way too much down the road. I want to keep the project active and
healthy with this, and as Derek noted, it should motivate all of us a
lot to work together in a small sprint. A shorter time span also means
that if one person cannot attend for timing reasons, he / she doesn't
have to wait another six months until he / she gets the chance again :)

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en




signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #7221] [NEED TEST] monotone cert should not require its target be on a branch

2010-05-10 Thread Stephen Leake

Update of bug #7221 (project monotone):

 Open/Closed:Accepted = In Test

___

Follow-up Comment #4:

test updated in b19661370e3fc21fb0a1b3c060ce7acc48737912

___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?7221

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] What key does sync use?

2010-05-10 Thread Stephen Leake
hend...@topoi.pooq.com writes:

 The description of
 get_netsync_read_permitted (branch, key_identity)
 says
 Returns true if a peer authenticated as key key_identity should be 
 allowed to read from your database certs, revisions, manifests, and 
 files associated with branch; otherwise false.
 and there's similar language for write_permitted.

 Now, when I'm syncing with a server, presumably it's the 
 server that vets keys provided by the client.  When I issue 
 the 
 mtn sync
 command, where does the client obtain the key(s) it's sending 
 to the server for approval?

from the keydir; normally ~/.monotone/keys, settable by --keydir option
on 'mtn checkout'

 And since sync is a two-way operation, where does the server get its 
 key(s) to provide to the client?

The user has told the client to accept updates from the server; it is
the user who's authority needs to be verified. The user is responsible
for knowing the trustworthiness of the server. So it is the same key,
from the keydir.

There is also a trust model that can provide more fine-grained control.

-- 
-- Stephe


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #7220] [NEED TEST] Monotone handles deleted files very ungracefully

2010-05-10 Thread Stephen Leake

Update of bug #7220 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?7220

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #8535] [NEED TEST] monotone log has bad defaults outside a working directory

2010-05-10 Thread Stephen Leake

Update of bug #8535 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?8535

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #8549] handle tree-layout merge failure sensibly

2010-05-10 Thread Stephen Leake

Update of bug #8549 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?8549

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #8916] Default database location

2010-05-10 Thread Stephen Leake

Update of bug #8916 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?8916

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #9269] [NEED TEST] monotone log doesn't understand windows directory separator

2010-05-10 Thread Stephen Leake

Update of bug #9269 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?9269

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #12455] MT 0.16 can't access, if DB stored on NFS

2010-05-10 Thread Stephen Leake

Update of bug #12455 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?12455

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/



___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] bug#13604: undrop

2010-05-10 Thread Stephen Leake
'undrop' is a new command; see nvm.bugfest-2010.13604-stephen_leake

The purpose of 'undrop' is to revoke a mistaken 'drop', before it is
committed.

There is an issue about how to deal with the '--recursive' option.

Currently, 'nodrop' allows '--recursive', but ignores it. That's so a
user can do:

drop --recursive dir
(oops, discover mistake)
undrop --recursive dir

But undrop actually ignores the '--recursive' option.

The question then is:

Suppose the user wanted to drop dir/*, but not dir?

'undrop' (without --recursive) should restore just dir, but not dir/*

I think the best thing to do here is disallow --recursive on undrop, and
in effect assume --recursive for 'undrop dir'.

Note that 'drop dir' without '--recursive' gives an error:

mtn: misuse: cannot remove dir1/, it is not empty

So it makes sense for 'undrop dir' to assume '--recursive' was given on
'drop'.

Then the use case above would be:

drop --recursive dir
(realize mistake)
undrop dir
drop [--recursive] dir/*

I think that's fair; first undo the mistake, then do the right thing.
Trying to support partial undo could lead to a can of worms:

drop --recursive dir1
(realize mistake)
undrop dir1/file1

What would that do?

Currently, this gives an error:
 mtn: warning: restriction excludes addition of 'dir1' but includes addition of 
'dir1/file1'
mtn: misuse: invalid restriction


opinions?

-- 
-- Stephe


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Stephen Leake
Thomas Keller m...@thomaskeller.biz writes:

 Here is a little analysis of the recent bugfest efforts.

Thanks for all your work in organizing this.

 Point proposals from me are noted for In test issues. If no one else
 objects, please close the issues I marked accordingly yourself:

 1) Assigned, but not (yet) closed issues:

 * #7221: [NEED TEST] monotone cert should not require its target
   be on a branch
   - net.venge.monotone.bugfest-2010.7221-stephen_leake
   - @Stephe: Please look at my comment there. If you work that out,
   an additional 2 point reward is for you :)

Fixed.

 * #13597: monotone update -b newbranch exhibits
   incorrect behaviour
   - @Stephe: whats your plan here?

The latest comment in the bug explains my confusion; it can be closed.
It is currently marked In Test.

 2) Assigned, In test issues:

...

I closed all of mine

 * #9269: [NEED TEST] monotone log doesn't understand windows directory
   separator
   - net.venge.monotone.bugfest-2010.9269-stephen_leake
   - test looks ok for me (can't execute it here locally, though,
   since I have no windows machine) - can be closed if the test
   works
   - points: 2 to Stephe

I ran the test on both Debian and MinGW; it works.

Closed.

 * #12455: MT 0.16 can't access, if DB stored on NFS
   - I tend to agree that this is set on won't fix, while it might
   still be a smaller issue in monotone (we should probably not
   segfault, but provide a good error message, can anyone with an NFS
   setup confirm that?)
   - points: 1 to Stephe

I think it's up to sqlite to provide a better error message. We could
file a bug upstream.

Closed.

   - points: 5 to Derek (if you add a test :)

Thank you for insisting on tests. The complete test suite is a major
feature of monotone; it makes the program much more trustworthy. I have
confidence that changes (made by me or others) will not break existing
behavior (or if they do, we will know about it).

One way to ensure tests get written is to adopt a development process
that always writes the test first, and always runs mtn in the context of
a test, not directly from the command line. I have a separate Makefile
for this, containing targets like:

mtn :
make -C /home/Projects/monotone/bug-hunt-build mtn

# /home/Projects/monotone/bug-hunt-build/tester_dir/tests/undrop/tester.log
# /home/Projects/monotone/bug-hunt/tests/undrop/__driver__.lua
test :
cd /home/Projects/monotone/bug-hunt-build; ./run_lua_tests -d undrop

That makes it very easy to rebuild mtn and run just the one test I'm
currently working on.

 * #13604: need 'undelete' ('undrop'?)
   - net.venge.monotone.bugfest-2010.13604-stephen_leake
   - patch looks largely cool, some minor objections:
 revert = not undrop; - is the not operator portable?

Sorry about that; I was writing Ada code in a C++ context :(. Amazing
that it compiled!

Interestingly, Emacs highlites not as a keyword in C++. But I don't
see it in my copy of the C++ standard; maybe it's very new?

replaced by !.

   - possible issue left: undrop does not work correctly when
  called on a dropped directory without --recursive. It still
  re-creates all childs of the directory, while one would assume
  that only the directory itself is recreated (and all the other
  files keep dropped)

I think this needs discussing; I'll start a separate thread.

I've added tests to illustrate some of the issues.

 Lets breakdown the current points (not counting the not in test
 issues) so far:

 1) Stephe   13 points (#7221 and #13597 still open)
 2) Richard  11 points
 3) Derek5 points (#20447 still open, might add +5)
 4) Tim3 points (#17878 still open, might add +5)

 I'll give everybody some more time to cleanup / finish the mentioned
 things and recalculate the final scores again then.

I feel a little guilty about this. I deliberately adopted a strategy of
only working on trivial bugs. That was partly because I was tired and
not in the mood for hard work, but also partly because I felt it was in
the spirit of the bug hunt.

But others took on significant issues, and that should be rewarded.

Perhaps next time there should be two top prizes; most bugs closed and
hardest bug closed, or perhaps most effort expended (measured by
changed lines of code, or something).

On the other hand, after a few bug hunts of only closing trivial bugs,
there won't be any left to close :).

--
-- Stephe


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Stephen Leake
Derek Scherger de...@echologic.com writes:

 On Sun, May 9, 2010 at 5:28 PM, Thomas Keller m...@thomaskeller.biz wrote:

 * #13604: need 'undelete' ('undrop'?)
  - net.venge.monotone.bugfest-2010.13604-stephen_leake
  - patch looks largely cool, some minor objections:
revert = not undrop; - is the not operator portable?
bool undrop function argument - an enum would be cool :)
  - possible issue left: undrop does not work correctly when
 called on a dropped directory without --recursive. It still
 re-creates all childs of the directory, while one would assume
 that only the directory itself is recreated (and all the other
 files keep dropped)
  - points: 5 to Stephe (if the remaining issues are sorted out)


 I'm somewhat curious about  this one but I haven't looked at the bug or the
 fixes yet. Is undrop/undelete somehow different from revert or is this just
 a command alias?

It is a minor modification of revert; I factored out the common code.

undrop just tells revert not to revert a file that is present in the
workspace, because it had changes when it was dropped.

-- 
-- Stephe


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread Stephen Leake
Derek Scherger de...@echologic.com writes:

 mtn add is non-recursive by default but allows for --recursive if you want
 it.
 mtn revert is recursive by default and doesn't allow for an obvious way of
 being non-recursive (I believe --depth=N will stop the recursion at the
 specified depth).

A general --[no-]* option mechanism would help here (just building
motivation for this).

 So, which is more dangerous (1) accidentally adding some files you didn't
 mean to add, or (2) accidentally reverting a bunch of changes you didn't
 mean to revert?

 Recovering from (1) is easy, just revert the additions you don't want. Since
 revert is recursive this is no problem! ;)

Well, it is at least linear in the number of files/directories
accidently added; not necessarily trivial :).

 Recovering from (2) is ... not so easy. If you happen to have all the
 reverted files open in editor buffers you might be able to write them back
 out but any pending renames will be messed up badly.

It depends on what changes you are reverting. If you have edited a bunch
of files, and want to revert only one, but accidently revert them all,
that's a problem.

On the other hand, if you are reverting an accidental drop, recursion is
appropriate.

'undrop' makes this even easier; see the separate thread on that.

One solution would be for 'revert' to move clobbered files to
_MTN/resolutions if --move-conflicting-files is given, as update does.

Better would be to have an option 'revert --exclude-changed-files' that
would only revert files that are actually gone (because they were
accidently deleted).

I'm not clear about revert vs renames; can you give an example?

 $ mtn add a # non-recursive
 $ mtn add a/... # recusive

 $ mtn revert a # non-recursive
 $ mtn revert a/... # recursive

 I'm not sure how we'd represent a recursive revert of the entire workspace,
 maybe 'mtn revert ...' or something.

 Comments?

I think this is clearer than the current state. But making it backwards
compatible would be hard, I think.

-- 
-- Stephe


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread hendrik
On Mon, May 10, 2010 at 08:37:35AM -0400, Stephen Leake wrote:
 Derek Scherger de...@echologic.com writes:
 
  mtn add is non-recursive by default but allows for --recursive if you want
  it.
  mtn revert is recursive by default and doesn't allow for an obvious way of
  being non-recursive (I believe --depth=N will stop the recursion at the
  specified depth).
 
 A general --[no-]* option mechanism would help here (just building
 motivation for this).

Perhaps revert should have no default.  You'd always have to explicitly 
specify --recursive or --nonrecursive or --norecursive.  Except maybe if 
there are no subdirectories so the difference is moot.

-- hendrik


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 6:24 AM, Stephen Leake 
stephen_le...@stephe-leake.org wrote:


 It is a minor modification of revert; I factored out the common code.

 undrop just tells revert not to revert a file that is present in the
 workspace, because it had changes when it was dropped.


Ahh I see. I've wondered of and on about a few different options to revert.
Like --name, --attrs, --content so that it can be a little more fine-grained
about what it does. So would something like revert --no-content file be
synonymous with undrop at this point?

I think there are still some problems lurking in revert as well, for one it
leaves renamed things laying around after reverting the renames. I've tried
a few times to make revert work based on the editable_tree interface rather
than just looking for missing files and recreating them but this turns out
to be quite tricky and I've never actually managed to make it work quite
right. The last attempt I made did at least get revert upgraded to use
roster style checks rather than csets but it still doesn't actually replay
the pending changes in reverse.

One thing I noticed in trying to fix the diff bug was this:

$ mtn mv dir dir2
$ edit dir2/file
$ mth revert dir2/file # only reverts content, leaves directory rename in
place
$ edit dir2/file
$ mtn revert dir2 --depth=0 # should revert the rename and leave the content
change but fails

it would be good to get this sorted out too.

What I really need to do is to go and add a bunch of tests for things like
this problem and a few others that I noticed in my thrashing around on
Saturday.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 6:21 AM, Stephen Leake 
stephen_le...@stephe-leake.org wrote:

 Thomas Keller m...@thomaskeller.biz writes:

  Here is a little analysis of the recent bugfest efforts.

 Thanks for all your work in organizing this.


I'll second that, you've done a great job of keeping track of what's going
on and reviewing things.

 1) Stephe   13 points (#7221 and #13597 still open)
  2) Richard  11 points
  3) Derek5 points (#20447 still open, might add +5)
  4) Tim3 points (#17878 still open, might add +5)
 
  I'll give everybody some more time to cleanup / finish the mentioned
  things and recalculate the final scores again then.

 I feel a little guilty about this. I deliberately adopted a strategy of
 only working on trivial bugs. That was partly because I was tired and
 not in the mood for hard work, but also partly because I felt it was in
 the spirit of the bug hunt.


Don't! I have a huge tendency to fall into any bottomless pit available and
it happened again on Saturday. I looked at the diff bug and thought it
looked like it might not be too bad and then it blew up in my face. Happens
all the time, didn't even surprise me. The list branch names with tags fix
took all of 15 minutes so I'm super lucky to get 5 points for that one too!
;)

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] RFC: lua output redirection

2010-05-10 Thread Thomas Keller
Am 08.05.10 14:34, schrieb Thomas Keller:
 Cool, other opinions?

If no one objects, I'd commit this change tonight together with a small
test to mainline.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Thomas Keller
Am 10.05.10 17:03, schrieb Derek Scherger:
 One thing I noticed in trying to fix the diff bug was this:
 
 $ mtn mv dir dir2
 $ edit dir2/file
 $ mth revert dir2/file # only reverts content, leaves directory rename in
 place
 $ edit dir2/file
 $ mtn revert dir2 --depth=0 # should revert the rename and leave the content
 change but fails
 
 it would be good to get this sorted out too.

In any way, it would be good if you could either open a bug or write an
xfailed test for it - I doubt (though I wish :)) you find time to get to
it back any time soon...

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Thomas Keller
Am 10.05.10 05:23, schrieb Timothy Brownawell:
 On 05/09/2010 06:28 PM, Thomas Keller wrote:
 
 * #17878: Usability: too easy to accidentally fork after
merge or disapprove
-  branch is net.venge.monotone.bugfest-2010.17878-tbrownaw
-  @Tim: is this done?
 
 It needs a test using the --update option, which I'll get to either in
 the morning or after work tomorrow. I suppose I should also put a note
 in NEWS about setting your get_default_command_options() if you want to
 always have that behavior.

Looks cool so far, a few minor questions / nitpicks:

1) In maybe_workspace_updater.cc:
+if (rev.edges.size() != 1)
+  return not_updatable;

Wouldn't that mean that the root revision of a branch is not updatable?
I.e. create a new project, commit and push that. Somebody else changes
it, you pull with --update afterwards, or do I get something wrong?

2) Your workspaces have not been updated - why are you using plural here?

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread Thomas Keller
Am 10.05.10 06:21, schrieb Derek Scherger:
 mtn add is non-recursive by default but allows for --recursive if you want
 it.
 mtn revert is recursive by default and doesn't allow for an obvious way of
 being non-recursive (I believe --depth=N will stop the recursion at the
 specified depth).
 
 So, which is more dangerous (1) accidentally adding some files you didn't
 mean to add, or (2) accidentally reverting a bunch of changes you didn't
 mean to revert?
 
 Recovering from (1) is easy, just revert the additions you don't want. Since
 revert is recursive this is no problem! ;)
 Recovering from (2) is ... not so easy. If you happen to have all the
 reverted files open in editor buffers you might be able to write them back
 out but any pending renames will be messed up badly.

I'm all for making revert non-recursive by default. While letting revert
acting recursively on the tree matches up with what f.e. subversion
does, it has always been a major headache for me to circumvent this with
dubious options, especially if directory attributes had to be reverted.

 There's an old branch net.venge.monotone.restrictions.wildcard-paths that
 once tried to add something like the foo/bar/... suffix that perforce uses
 to indicate recursive behaviour and perhaps we should consider doing this
 again. This might help clean up add, revert, status, diff, commit, etc. and
 allow the --depth option to be retired.
 
 i.e.
 $ mtn add a # non-recursive
 $ mtn add a/... # recusive
 
 $ mtn revert a # non-recursive
 $ mtn revert a/... # recursive
 
 I'm not sure how we'd represent a recursive revert of the entire workspace,
 maybe 'mtn revert ...' or something.

This is actually a nice idea - though we probably have to prohibit file
names like ^\.{3,} for that to work properly. It would certainly help
/ avoid the code clutter we have with the various --depth, --recursive
and so on option code.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread Thomas Keller
Am 10.05.10 14:37, schrieb Stephen Leake:
 One solution would be for 'revert' to move clobbered files to
 _MTN/resolutions if --move-conflicting-files is given, as update does.

I think not having --move-conflicting-paths here is a completly
different issue and could arise for any implementation of revert.
Stephe, could you file a bug or alternatively add an xfailed test for
that? I think we should handle that some time in the future.

 Better would be to have an option 'revert --exclude-changed-files' that
 would only revert files that are actually gone (because they were
 accidently deleted).

This is similar to what Derek proposed in the other mail, giving options
to revert of what should actually be reverted. But this sounds rather
hard to implement and we should elaborate if this is really a often
needed use case. Way more often should be the use case revert parts of
patch hunks of individual files like git does, but we're missing a
staging area for that purpose. Completely different topic :)

 Recovering from (2) is ... not so easy. If you happen to have all the
 reverted files open in editor buffers you might be able to write them back
 out but any pending renames will be messed up badly.
 I'm not clear about revert vs renames; can you give an example?

I think what he meant is the following:

$ mtn mv a b
$ edit b
$ mtn revert b
$ edit / save b again

You end up with an unknown file b because of course your editor doesn't
get the info that the rename was reverted.

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Thomas Keller
Am 10.05.10 17:08, schrieb Derek Scherger:
 On Mon, May 10, 2010 at 6:21 AM, Stephen Leake 
 stephen_le...@stephe-leake.org wrote:
 
 Thomas Keller m...@thomaskeller.biz writes:

 Here is a little analysis of the recent bugfest efforts.

 Thanks for all your work in organizing this.

 
 I'll second that, you've done a great job of keeping track of what's going
 on and reviewing things.

Thank you two :) - its actually fun to manage that - though it can be
stressful if five emails arrive in parallel, all with different
discussions and topics...

Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Stephen Leake
Derek Scherger de...@echologic.com writes:

 On Mon, May 10, 2010 at 6:24 AM, Stephen Leake 
 stephen_le...@stephe-leake.org wrote:


 It is a minor modification of revert; I factored out the common code.

 undrop just tells revert not to revert a file that is present in the
 workspace, because it had changes when it was dropped.


 Ahh I see. I've wondered of and on about a few different options to revert.
 Like --name, --attrs, --content so that it can be a little more fine-grained
 about what it does. So would something like revert --no-content file be
 synonymous with undrop at this point?

I don't know; --no-content to me sounds like don't revert content,
just renmaes and other stuff. That's not the same as 'undrop', which
does revert content if the file actually got deleted from the workspace.

 One thing I noticed in trying to fix the diff bug was this:

 $ mtn mv dir dir2
 $ edit dir2/file
 $ mth revert dir2/file # only reverts content, leaves directory rename in
 place
 $ edit dir2/file
 $ mtn revert dir2 --depth=0 # should revert the rename and leave the content
 change but fails

 it would be good to get this sorted out too.

I think restrictions in general are poorly defined, which is one reason
I never use them.

-- 
-- Stephe

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis - final points

2010-05-10 Thread Thomas Keller

Hi again!

So I got comments on most things - lets check the final scores:

 1) Assigned, but not (yet) closed issues:
 
 * #7221: [NEED TEST] monotone cert should not require its target
   be on a branch
   - net.venge.monotone.bugfest-2010.7221-stephen_leake
   - @Stephe: Please look at my comment there. If you work that out,
   an additional 2 point reward is for you :)

Fix has been adapted, points have been counted.

 * #17878: Usability: too easy to accidentally fork after
   merge or disapprove
   - branch is net.venge.monotone.bugfest-2010.17878-tbrownaw
   - @Tim: is this done?

I reviewed that (see the other mail) - if the remaining smaller issues
have been sorted out and all tests pass, it should be good to get
merged. I'll reward that with 5.

 * #13597: monotone update -b newbranch exhibits
   incorrect behaviour
   - @Stephe: whats your plan here?

Not a bug anymore, no more points here, I think (I should have gotten
one :)). Stephe, please close this as well since you're still assigned.

 * #20447: mtn diff filename fails inside of a renamed directory
   - net.venge.monotone.bugfest-2010.20447-dscherger
   - @Derek: whats your plan here? Is this reviewable?

Patch looks ok, if you add tests for the new diff behaviour (/dev/null
in adds and file removals) and check the patch(1) compatibility, I'll
reward that with an 8.

Note that you based this work on the code of #12273 - so only merge it
into mainline afterwards when you had the time to manage the shortening
of the ls tags output there :)

 Lets breakdown the current points (not counting the not in test
 issues) so far:
 
 1) Stephe   13 points (#7221 and #13597 still open)
 2) Richard  11 points
 3) Derek5 points (#20447 still open, might add +5)
 4) Tim3 points (#17878 still open, might add +5)

Now the updated final results:

1) Stephe   15 points
2) Derek13 points
3) Richard  11 points
4) Tim  8 points

I think it would be only fair to reward everybody of you with a small
price - you all have been quite busy and the point scores are very
nearby. If you want to get something, hand me over your postal address -
if you have a specific wish (but please be kind to my money bag :)),
tell it to me - for example if you have enough coffee mugs in your
cupboard already...

Thanks again for your work,
Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #29849] add --move-conflicting-paths to revert

2010-05-10 Thread Stephen Leake

URL:
  http://savannah.nongnu.org/bugs/?29849

 Summary: add --move-conflicting-paths to revert
 Project: monotone
Submitted by: stephen_leake
Submitted on: Mon 10 May 2010 07:04:44 PM EDT
Category: command line UI
Severity: 1 - Wish
  Item Group: feature request
  Status: None
 Privacy: Public
 Assigned to: None
 Open/Closed: Open
 Discussion Lock: Any
  mtn version --full: 

___

Details:

'revert --move-conflicting-paths' would be the same as current 'revert' for
files that were deleted from the workspace. But for files that are still
present, and different from the base revision version, would be preserved in
_MTN/resolutions, as for 'update --move-conflicting-paths'. That way, the user
can restore the changes if desired.




___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?29849

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] [bug #13597] monotone update -b newbranch exhibits incorrect behaviour

2010-05-10 Thread Stephen Leake

Update of bug #13597 (project monotone):

 Open/Closed: In Test = Closed 


___

Reply to this item at:

  http://savannah.nongnu.org/bugs/?13597

___
  Message sent via/by Savannah
  http://savannah.nongnu.org/


___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Timothy Brownawell

On 05/10/2010 03:44 PM, Thomas Keller wrote:

Am 10.05.10 05:23, schrieb Timothy Brownawell:

On 05/09/2010 06:28 PM, Thomas Keller wrote:


* #17878: Usability: too easy to accidentally fork after
merge or disapprove
-   branch is net.venge.monotone.bugfest-2010.17878-tbrownaw
-   @Tim: is this done?


It needs a test using the --update option, which I'll get to either in
the morning or after work tomorrow. I suppose I should also put a note
in NEWS about setting your get_default_command_options() if you want to
always have that behavior.


Looks cool so far, a few minor questions / nitpicks:

1) In maybe_workspace_updater.cc:
+if (rev.edges.size() != 1)
+  return not_updatable;

Wouldn't that mean that the root revision of a branch is not updatable?
I.e. create a new project, commit and push that. Somebody else changes
it, you pull with --update afterwards, or do I get something wrong?


That still has one edge, from a parent with the null revision id.


2) Your workspaces have not been updated - why are you using plural here?


Hm. I guess because I tend to have multiple workspaces (because I'm 
fairly easily distractable and don't work in small enough chunks yet). 
But to really be consistent with this it should say your other 
workspaces have not been updated when it *does* update.


...I suppose the having too many workspaces really is a bad habit we 
don't want to encourage, so I'll go make it not plural. And then it 
doesn't have to say anything when it does update.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] Why are io.popen() and os.execute() disabled again?

2010-05-10 Thread Thomas Keller

Hi!

I'm in the process of improving our Lua documentation a bit, also in
respect to the recent changes in print() / io.write() behaviour and I
wanted to include a sentence or two about the above mentioned disabled
functions. And then I started wondering why we disable these two
functions at all - especially since we replace them with two other
custom calls...

I know Graydon committed this initially in
c6b551a24d7e2fd97d87aace1f03cabece12f8b7 back in 2005 and I found a
reference on the list
(http://www.mail-archive.com/monotone-devel@nongnu.org/msg02464.html),
but both don't bring me further.

Can anybody please shed light into this issue?

Thanks,
Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] Why are io.popen() and os.execute() disabled again?

2010-05-10 Thread Timothy Brownawell

On 05/10/2010 06:40 PM, Thomas Keller wrote:


Hi!

I'm in the process of improving our Lua documentation a bit, also in
respect to the recent changes in print() / io.write() behaviour and I
wanted to include a sentence or two about the above mentioned disabled
functions. And then I started wondering why we disable these two
functions at all - especially since we replace them with two other
custom calls...

I know Graydon committed this initially in
c6b551a24d7e2fd97d87aace1f03cabece12f8b7 back in 2005 and I found a
reference on the list
(http://www.mail-archive.com/monotone-devel@nongnu.org/msg02464.html),
but both don't bring me further.

Can anybody please shed light into this issue?


The changelog there says disable bad lua functions from monotone, not 
lua library, and it also touches lua/liolib.c.


What it removes there is:
|   -
|   -  /*
|   -monotone specific: we're disabling io_popen here because
|   -it calls shell, and is thereby a horrible security hole in
|   -waiting.
|   -  */
|   -
|   -  /*   {popen, io_popen}, */
|   -

...which first showed up in 73c79720e2948734647b5e4393c1cfbca0b1d073, on 
2/3/2005.


So that means the purpose is to not have to worry about things like 
properly quoting any evil shell metacharacters in the filenames you give 
your external merger.


--
Timothy

Free public monotone hosting: http://mtn-host.prjek.net

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] Please review nvm.experiment.lua-output-redirection

2010-05-10 Thread Thomas Keller

Hi!

I've committed my recent lua-related changes to the above mentioned
branch. Please review that again, especially the documentation changes
since I'm still not a native speaker...

I also want to include some documentation why io.popen and os.execute is
disabled (see the other mail) - if somebody could step up and write this
for me then I'd be very grateful :)

Thanks,
Thomas.

-- 
GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz
Please note that according to the EU law on data retention, information
on every electronic information exchange might be retained for a period
of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en



signature.asc
Description: OpenPGP digital signature
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


[Monotone-devel] hello and thanx

2010-05-10 Thread J Decker
Nice to see lots of bugs squashed :)

I have to thank you for developing a sane product.   I have been
coerced into using mercurial at work, and after coming from monotone,
some of the things it makes me do are just insane.  Merge, for
instance, must be done through a workspace, so in order to just merge
two heads, If I had work in progress in the tree, I have to clone the
repository to another directory, check out the source(ya that's the
same step), and then do the merging;  A commit from a merge cannot be
done with relative paths like 'I want to commit just this part of the
tree', you have to commit the whole thing, so work in progress changes
would get mixed up in the whole thing.  The revisions to merge are all
in the repository, so why does it require a workspace?!  Git does the
same thing in this respect.

I dunno, this seems like such a small thing, but it pisses me off to
no end that I have to do so much extra work just to make sure that
sane merges happen.

Rebasing to another branch in mercurial and git are both very slow.

(coming from branch)
mtn update -r h:branch1  (takes like 3 seconds, 6 if i count the time
it scrolls text)
hg update -r h:branch1  (takes like a minute)

and there were more files changed in the mtn difference between
branches than were changes in mercurial.

git also gave me a huge hassle rebasing to another branch... I had
minor edits in the files, and it had no idea what to do with that...
and revert didn't work.. but that was a month ago, so the details of
my anger elude me.

Again, thanx, keep up the great work!

Wish you guys get a gui soon!  what with tortoise hg, git, and svn out
there (is there a tortoise bzr yet) ... should be easy enough to grab
one of those and tweak it to fit monotone.

Jim

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] hello and thanx

2010-05-10 Thread Hugo Cornelis
Nice to hear that monotone is so much faster than git and mercurial
for certain operations.


Hugo


On Mon, May 10, 2010 at 7:31 PM, J Decker d3c...@gmail.com wrote:
 Nice to see lots of bugs squashed :)

 I have to thank you for developing a sane product.   I have been
 coerced into using mercurial at work, and after coming from monotone,
 some of the things it makes me do are just insane.  Merge, for
 instance, must be done through a workspace, so in order to just merge
 two heads, If I had work in progress in the tree, I have to clone the
 repository to another directory, check out the source(ya that's the
 same step), and then do the merging;  A commit from a merge cannot be
 done with relative paths like 'I want to commit just this part of the
 tree', you have to commit the whole thing, so work in progress changes
 would get mixed up in the whole thing.  The revisions to merge are all
 in the repository, so why does it require a workspace?!  Git does the
 same thing in this respect.

 I dunno, this seems like such a small thing, but it pisses me off to
 no end that I have to do so much extra work just to make sure that
 sane merges happen.

 Rebasing to another branch in mercurial and git are both very slow.

 (coming from branch)
 mtn update -r h:branch1  (takes like 3 seconds, 6 if i count the time
 it scrolls text)
 hg update -r h:branch1  (takes like a minute)

 and there were more files changed in the mtn difference between
 branches than were changes in mercurial.

 git also gave me a huge hassle rebasing to another branch... I had
 minor edits in the files, and it had no idea what to do with that...
 and revert didn't work.. but that was a month ago, so the details of
 my anger elude me.

 Again, thanx, keep up the great work!

 Wish you guys get a gui soon!  what with tortoise hg, git, and svn out
 there (is there a tortoise bzr yet) ... should be easy enough to grab
 one of those and tweak it to fit monotone.

 Jim

 ___
 Monotone-devel mailing list
 Monotone-devel@nongnu.org
 http://lists.nongnu.org/mailman/listinfo/monotone-devel




-- 
Hugo


--

Hugo Cornelis Ph.D.

  Neurospaces Project Architect
http://www.neurospaces.org/

   Laboratory of Neuro- and Psychofysiology
  ON I Herestraat 49 - bus 1021
3000 Leuven, Belgium

  Research Imaging Center
   University of Texas Health Science Center at San Antonio
7703 Floyd Curl Drive
 San Antonio, TX  78284-6240

Phone: 210 567 8112
  Fax: 210 567 8152

___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 3:47 PM, Stephen Leake 
stephen_le...@stephe-leake.org wrote:

 I don't know; --no-content to me sounds like don't revert content,
 just renmaes and other stuff. That's not the same as 'undrop', which
 does revert content if the file actually got deleted from the workspace.


Fair enough, I now see where you're coming from. I don't think I've ever
used the --bookkeep-only option so I've never ended up with a file in such a
state.


  One thing I noticed in trying to fix the diff bug was this:
 
  $ mtn mv dir dir2
  $ edit dir2/file
  $ mth revert dir2/file # only reverts content, leaves directory rename in
  place
  $ edit dir2/file
  $ mtn revert dir2 --depth=0 # should revert the rename and leave the
 content
  change but fails
 
  it would be good to get this sorted out too.

 I think restrictions in general are poorly defined, which is one reason
 I never use them.


If you say 'undrop file'  you're using them! ;)

The situation with revert might be better if it did do its work through the
editable tree interface but getting this to work is difficult at best and it
leaves open the possibility that revert will fail with mixed
files/directories in the workspace blocking things from being reverted. One
up-side of using the editable tree interface would be that revert wouldn't
leave all kinds of junk laying around after its done.

- Do you have any specific ideas of things that could be defined or
described better?

- Is it that the existing documentation doesn't describe what is possible
well enough?

- Is it that various commands deal with things in different ways (revert in
particular, but also add etc.) which makes it feel like they are not well
defined?

- Is it that add a/b/c will add a, a/b and a/b/c and then commit a/b/c will
fail because it has excluded a and a/b?

- Is it that filenames are generally resolved against both the old and new
roster to select nodes to be included or excluded?

- Is it that the --depth option applies to all specified paths rather than
to a specific path, allowing different levels of recursion for different
directories?

- Is it that you're not sure what will happen when you're about to say
commit or revert with a set of paths? The intention is that the changes that
get selected are *identical* for status, diff, commit, revert and the
various list commands that apply to paths and there are tests to this
effect.

I believe that the set of nodes that get included based on a given list of
paths and --exclude options is completely well defined. Whether this set is
well defined for the operation it is used for might be another matter though
as not all commands can or do use it. For example add doesn't have a set of
nodes to select from so it has to do something slightly different.

I do agree that committing part of a workspace can be considered bad
practice in that you're essentially committing something that hasn't been
tested but it happens often enough in reality that it seems like a necessary
feature. Most other systems out there do allow this so we're not too far out
in left field.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bug#13604: undrop

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 5:53 AM, Stephen Leake 
stephen_le...@stephe-leake.org wrote:

drop --recursive dir1
(realize mistake)
undrop dir1/file1

 What would that do?

 Currently, this gives an error:
  mtn: warning: restriction excludes addition of 'dir1' but includes
 addition of 'dir1/file1'
 mtn: misuse: invalid restriction


 opinions?


If we change things so that parent directories of selected files/dirs are
implicitly included  (non-recursively) I think this would be able to do what
you expect, undrop dir1 and dir1/file1.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 3:20 PM, Thomas Keller m...@thomaskeller.biz wrote:

 I think what he meant is the following:

 $ mtn mv a b
 $ edit b
 $ mtn revert b
 $ edit / save b again

 You end up with an unknown file b because of course your editor doesn't
 get the info that the rename was reverted.


You don't even need to edit /save a second time. Revert just recreates the
old file and leaves the renamed b sitting there.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] to be recursive or non-recursive that is the question

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 3:10 PM, Thomas Keller m...@thomaskeller.biz wrote:

  $ mtn add a # non-recursive
  $ mtn add a/... # recusive
 
  $ mtn revert a # non-recursive
  $ mtn revert a/... # recursive
 
  I'm not sure how we'd represent a recursive revert of the entire
 workspace,
  maybe 'mtn revert ...' or something.

 This is actually a nice idea - though we probably have to prohibit file
 names like ^\.{3,} for that to work properly. It would certainly help
 / avoid the code clutter we have with the various --depth, --recursive
 and so on option code.


Agreed.

I have somewhat mixed feelings about it though. It's not exactly standard
shell syntax which is not so good, but trying to do this with options
doesn't really work either. I'm not sure what we'd do about the backwards
compatibility concern raised upthread, other than call this a breaking
change.

One other thing, I think there is some requirement (maybe desire is a
better word) in the tests for the ability to select a directory and it's
immediate children but not their children, although I can't remember the
details. Maybe just using foo and foo/* would be the thing to do in that
case.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel


Re: [Monotone-devel] bugfest analysis - final points

2010-05-10 Thread Derek Scherger
On Mon, May 10, 2010 at 3:53 PM, Thomas Keller m...@thomaskeller.biz wrote:

  * #20447: mtn diff filename fails inside of a renamed directory
- net.venge.monotone.bugfest-2010.20447-dscherger
- @Derek: whats your plan here? Is this reviewable?

 Patch looks ok, if you add tests for the new diff behaviour (/dev/null
 in adds and file removals) and check the patch(1) compatibility, I'll
 reward that with an 8.


Great! Ok, I'll add this to my list (which is getting rather long at this
point) as well. It shouldn't be too hard to finish up.


 Note that you based this work on the code of #12273 - so only merge it
 into mainline afterwards when you had the time to manage the shortening
 of the ls tags output there :)


Oh good catch. I'll finish that up and add a test and then merge it to
mainline. I was wondering a bit more about a --verbose option that might
apply here to turn on more detail in the list of tags. Perhaps the default
would be to list only tag names and revs, and with --verbose list the branch
and key details too.

Cheers,
Derek
___
Monotone-devel mailing list
Monotone-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/monotone-devel