[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Monotone-devel] Changes in nvm.basic_io.inventory
From: |
Stephen Leake |
Subject: |
Re: [Monotone-devel] Changes in nvm.basic_io.inventory |
Date: |
Thu, 10 May 2007 06:34:16 -0400 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (windows-nt) |
Thomas Keller <address@hidden> writes:
> Stephen Leake schrieb:
>
>>> $ mtn rename foo tmp
>>> $ mtn rename bar foo
>>> $ mtn rename tmp bar
>> So if the user had done 'automate inventory' between each of these
>> steps, it would have been clearer.
>> Let's see; 'path' gives the name in the current workspace filesystem.
>> 'new_path' gives the name in the current (uncommitted) revision
>> manifest. 'old_path' gives the name in the committed revision
>> manifest.
>
> Thats not totally true. 'path' can also point to an old or a new path.
> F.e. if an item is dropped, you get the following output:
>
> path "dropped_file"
> old_type "file"
> fs_type "none"
> status "dropped"
>
> The output for added items is similar:
>
> path "added_file"
> new_type "file"
> fs_type "file"
> status "added" "known"
>
> So, its actually this way: If a file is dropped (status "dropped"),
> 'path' is the path in the old roster. If a file is added (status
> "added"), 'path' is the path in the new roster. If a file is renamed,
> 'path' is either an old or a new path, depending if there is a
> 'new_path' stanza (then its an old path) or an 'old_path' stanza (then
> its a new path).
I find this confusing.
Perhaps it would be less confusing if we change it to work the way I
stated it above; then the output of 'automate inventory' is more
directly related to the state of the filesystem and manifests.
Although I'm not sure what that means for missing and dropped files;
they don't exist in the filesystem.
Perhaps 'path' should be absent if fs_type is 'none'. And perhaps 'path'
should be 'fs_path', to be consistent with 'old_path'.
Then the stanza should start with 'status', since there needs to be a
line that reliably starts a stanza; parsers should not rely on
whitespace.
You've also confused 'stanza' with 'line'; I think 'stanza' means
'group of lines'? I need to write that up ...
> Now the interesting question here is actually what 'path' is if the
> item was both, rename source and rename target. Can't answer this
> properly right now.
If 'fs_path' is simply the current name in the filesystem, this is
resolved.
> As a sidenote, I thought about having two rename states,
> "rename_source" and "rename_target", but then decided against this
> because what the item actually is, is implicitely told by old_path
> and new_path (just like before through the node ids). But maybe its
> not that a bad idea to make this more explicit, I dunno.
In general, I think it's better to be explicit, as long as it doesn't
get overly verbose.
--
-- Stephe
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Stephen Leake, 2007/05/07
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Thomas Keller, 2007/05/07
- Message not available
- Message not available
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory,
Stephen Leake <=
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Thomas Keller, 2007/05/10
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Stephen Leake, 2007/05/10
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Derek Scherger, 2007/05/11
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Stephen Leake, 2007/05/11
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Thomas Keller, 2007/05/11
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Stephen Leake, 2007/05/12
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Thomas Keller, 2007/05/12
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Stephen Leake, 2007/05/12
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Derek Scherger, 2007/05/13
- Re: [Monotone-devel] Changes in nvm.basic_io.inventory, Christian Ohler, 2007/05/11