[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] vc-svn: vc-merge, avoid status checks

From: Stefan Monnier <monnier+gmane.comp.version-control.subversion.devel/news/_at_rum.cs.yale.edu>
Date: 2003-03-19 16:15:21 CET

[ Note: I'm mostly unfamiliar with Subversion and still haven't looked
  at vc-svn.el, but I've hacked on VC quite a bit. ]

> +;;; After manual merging, need some way to run `svn resolve'. Perhaps
> +;;; we should just prompt for approval when somebody tries to commit a
> +;;; conflicted file?

Indeed, VC lacks a notion of "file with unresolved conflicts". Maybe
we should add it to the possible return values of vc-state.

> +;;; vc-svn ought to handle more gracefully an attempted commit that
> +;;; fails with "Transaction is out of date". Probably the best
> +;;; approach is to ask "file is not up-to-date; do you want to merge
> +;;; now?" I think vc-cvs does this.

It just does something like:

      (when (re-search-forward "Up-to-date check failed" nil t)
        (vc-file-setprop file 'vc-state 'needs-merge)
        (error (substitute-command-keys
                (concat "Up-to-date check failed: "
                        "type \\[vc-next-action] to merge in changes"))))

so instead of `yes' you have to say `C-x v v'.
 
> +;;; Is it really safe not to check for updates?

In vc-cvs.el the code is designed such that it is safe. I don't know
if vc-svn.el does it as well, but if it doesn't, it should.

> I haven't seen any
> +;;; cases where failing to check causes a problem that is not caught
> +;;; in some other way.

Check out how vc-cvs.el does it. There's a vc-cvs-stay-local
variable (used in the vc-cvs-stay-local-p predicate) which the user
can set to indicate her preference.

> +This calls `svn update'. In the case of conflicts, Subversion puts
> +conflict markers into the file and leaves additional temporary files
> +containing the `ancestor', `mine', and `other' files.

Good to hear. This is a serious problem with CVS where recovering the
`ancestor' and the `other' can be difficult. Now I think this is
a good argument for re-introducing a way to call ediff from VC
(in the current CVS code for Emacs, this has been removed and VC
relies on smerge-mode to provide the "call ediff" functionality).

> +You may need to run `svn resolve' by hand once these conflicts have
> +been resolved."

Why is that ?

        Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Mar 19 16:22:41 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.