Yuval Kogman wrote: >How about unpull putting the patch in a stowaway place, where it can >be retrieved from, a bit like CVS's attic but more elegant. > >You can go through this "attic" if you really want to zap something >completely, and then it's your responsibility. > >I don't like unpull relying on other repos because it is less >distributed, by being dependant on external resources. > >Furthermore, the performance hit will be REAAAALLLLLYYY painful. > >This gives unpull a sort of cherry picking edge, too - you can >hotswap some changes easily, without needing to keep an entire >branch at hand (which is sometimes annoying, since you might not >want to override your default repo, and you might not remember to >set the flag, and so on and so forth). > >Ciao! > > I think the current "unpull" is used in two situations. It can work as the opposite of "pull", or to erase unwanted patches. From previous posts of David Roundy, I feel that "unpull" is designed as the opposite of "pull". For analog, "unrecord" can undo the works of "record", and "record" can (effectively) undo the works of "unrecord"; "unrevert" can undo the works of "revert", and "revert" can undo the works of "unrevert". However, the current "unpull" not only undo the works of "pull", but it can also erase patches that cannot be recovered by "pull". Checking other repository is just improve the implementation of the concept of un-pulling, but not the concept of erasing.
A typical usage of "unpull" is: cd .. darcs get repo repo2 (or "cp -r") cd repo2 darcs unpull (or pull back some patches later) In this working style, both "repo" and "repo2" lie in the same file system. Checking the other repository will not slow down the operation much. The performance is also not a problem if you have a "main repository" in the local hard-disk. A software tool should not and cannot stop a man to take risk. If he wants to delete his work, the revision control system has no reason to stop him. However, "unpull" is used usually not because we want to erase some bad patches, but simply want to get different combinations of patches. We do not want to lost any data in the operation. In this case, it is a good idea to provide a safe solution. In the other hand, if someone really want to erase bad patches or he cannot access any other repository in his working environment, he can still use "unrecord" or the new "drop/obliterate" command (or "unpull --force" ??) which should work like the current "unpull" command. They can do the same thing as the current "unpull" and they have a better command name. However, the user should expect to take risk (same as the current "unpull"). By the way, I do not really understand why we need "drop" or "obliterate", since "unrecord" and "revert" can do the job well. _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
