I've been trying to extract "the master plan about bundles" from the TortoiseHg 
code, but it seems the code goes in slightly different directions, and is in 
any case not finished. I am mainly concerned about three things:

1. Improving the quite poor performance
2. Making possible bundle:foo+bar URLs from the command line
3. Removing the filtering which disallows clicking on any non-incoming 
changesets

As for 1, the main problem stems from thg calling branchmap() on the 
bundlerepo, which writes a new branch cache to disk, forcing an expensive 
recreate later. I've posted a patch to Mercurial to prevent bundlerepo from 
writing back the cache.

As for 3, I don't have time to look at it for the time being.

As for 2, like I mentioned I am not sure what the plan in the current code is, 
but the parts that ARE in work as follows:

a. -R's with bundle:foo+bar get split into foo, and an extra argument 'bundle' 
gets set to bar.
b. This extra argument is subsequently not used anywhere.
c. At the same time, thgrepo and a few other places have a bundle argument, 
which is currently used for the button-activated bundle feature.

So here's MY plan, then:

x. Remove the special case instantiation of bundlerepository from thgrepo. This 
is done in the present patch. Special casing prevents the bundlerepository from 
being wrapped in mq repo and other extensions. This may be on purpose, of 
course, in which case the patch shouldn't be pushed.

y. Carry the bundle argument (extracted from bundle:-urls) into a call to 
setBundle right after creating the repowidget. I have written a proof of 
concept for this.

y.alternative. Don't separate the bundle:-urls, but just create the repo object 
directly. Then, later, detect that it's a bundle repo, and set the bundle 
without having to recreate a new repo instance. This is faster, but the 
detection code is not too pretty since there is no official way to do this. I 
have written a proof of concept for this.

Note that for y.alternative to work, the present patch is absolutely needed. 
For y, it's independent. Discussion welcome :)

-Sune

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to