M. Z. wrote:
> Hello Stefan,
> Sorry, some other matters came up so just getting back to this, plus
> did some research.
>
> By 'default dirs' I mean the entries that get filled into the Repo URL
> and Checkout Dir
> edit fields. When you use Checkout... from Explorer on a non-WC dir
> and then use the
> Repo-Browser button to pull up the Repo-Browser, dialog version, to
> select a branch
> or tag it will modify the Checkout Dir to append the name if it
> doesn't already match.
>
> When you go straight to Repo-Browser from Explorer, then try to
> Checkout... from there
> the Checkout dialog's Dir field isn't primed with the directory you
> invoked the RB from,
No, because that directory is already versioned so using that directory
as a default would be useless and wrong.
> modified similarly if the repo dir name you're trying to checkout
> doesn't match, but
> with the last checkout dir used, whether it matches or not. When you
> use the Checkout
> Dir browse button to reselect the root dir you wanted, you need to re-
> open the Repo-
> browser and re-select the repo dir to get it to check if the dir names
> are the same or not,
> or copy/paste the tag from URL edit box to the Chk Dir box.
>
> This also occurs when browsing from a depth=empty dir and you try to
> checkout, it
> also defaults to last checkout dir, not a level matching what dir
> you've cherry picked
> applied suitably to the dir you right-clicked to open the Repo-
> Browser. While this may
> be what was intended to ease creating nested layouts for some people,
> I think most
> would expect that when the Repo-Dir and the WC-Dir have a common root
> that it
> wouldn't nest, just be a sparse copy.
I mentioned this before: to fill a sparse checkout, you must use update,
not checkout.
Again: you must use 'update', not 'checkout' to fill a sparse checkout.
If you use checkout, you won't get a sparse wc but a nested wc. Those
are completely different.
> Given this behavior for Checkout, I was surprised that Update to
> Revision... actually did
> function, creating depth=empty intermediate dirs if required. I
> haven't tried switching
> to a different repository once browser open and then doing an Update
> to Rev..., or
> other forms of stressing it, though.
>
> As to the research, except for not finding yet the method needed for
> QueryRepoVersion,
There is no such method/function because that's not implemented in
Subversion - the server *never* returns a version, only capabilities.
> a patch for the SVN.cpp and SVN.h files should be forthcoming for the
> checkout speedup.
> It's not a trivial amount of copy/paste, true, but the other logic is
> in there and doesn't
> need to affect any other files, it appears. Problem is, seems you have
> to infer the server
> version from the repository capabilities; there's no direct client
> call, that I see, that filters
> through the RA layer. Should I post it here or to the dev list when
> it's done? I don't have
> the full VS08, so someone else would have to test it, but I'll try to
> keep the typos to a
> minimum.
Maybe I wasn't clear before:
you mentioned this pseudo-code to make it work:
if repo-dir-from-dialog-or-admin-dir-exists && depth <> full {
if query-repo-version < 1.5 {
do repo-browse-logic dirs and files/files only checkout or update
} else {
keep current methods
}
}
and I answered to that:
"Sorry, but even though it seems that your example would work, it can't."
which means: this won't work the way you want it to.
Also I've told you that this would have to be implemented in the svn
library, not TSVN (and that should give you something to think about:
why did the svn developers not implement it that way right away?).
Also, don't take this the wrong way but I don't accept patches that
haven't been tested or were not even compiled.
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
Received on 2008-11-21 10:21:36 CET