Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

cherry-pick, undo, and rollback UI: msg#00016

version-control.revctrl

Subject: cherry-pick, undo, and rollback UI

There are several different interfaces to cherry-picking and rollback, and
I'm sort of on the fence about which one(s) it's best to support.

For cherry-pick, the obvious interface is 'apply the diff from version X
to version Y to my local version'. There's also 'pull everything just from
file F to my local version' (we've been calling this 'selective update',
and it's reasonably easy to support without supporting full-blown
cherry-pick, but is a form of cherry-picking nonetheless). Finally,
there's the interface where you say 'pull in everything which is new in X
as conflict markers', then you locally pick and choose which changes to
accept, then do a checkpoint, and it gets treated as a cherry-pick.

For rollback, there's a lot more subtlety and nuance. The basic
functionality is 'take the diff from version X to version Y, undo it from
my local version, and let it get re-done when I merge with a descendant of
version Z'. Undo simply leaves off the version Z. Note that Z frequently
is pointing out to a version which hasn't been updated from locally. I
think a good modification of this approach is 'take all modifications
which were made by a descendant of X and an ancestor of Y, undo them
locally, and redo them when I merge with a descendant of Z'. That does a
good job of avoiding undoing unrelated changes which just happened to get
checked in. Another interface is to do it cherry-picking style, and update
everything which is different in version X as conflict markers, then
manually pick out what to remove, checkpoint, and have it treated as a
rollback, again to be undone next time one merges with version Z.

It also may make sense to not really have a specified version Z, and
instead have the system warn the user when there was a conflict with a
rollback, and have an easy way of saying 'well then, undo the rollback'.

Obviously rollback has the least nice interface here, although honestly I
think that anybody stuck needing rollback will be so desperate for
something which works they won't complain about interface all that much.

-Bram


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
hardware.arm.at...    cms.citadel.dev...    video.gstreamer...    java.facelets.u...    misc.basics.qna...    web.wiki.instik...    network.uip.use...    xdg.devel/2003-...    tex.bibtex.bibd...    finance.quotesp...    ietf.zeroconf/2...    redhat.blinux.g...    suse.db2/2003-0...    php.phpesp/2004...    uml.devel/2003-...    gnome.labyrinth...    qnx.openqnx.dev...    boot-loaders.gr...    db.dataperfect....    audio.audacity....    linux.uclinux.m...    editors.j.devel...    os.openbsd.tech...    kde.users.multi...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation