Remarks to Andreas reply. First, I would like to quote Stefan Küng's
comment from SVN-2507: "First, remember that locking is often done by
non-technical people (e.g., designers working on images, non-devs
working on word docs, ...) so they're happy if they can use svn at
all."

- So, the point is not to minimize conflicts. Our customers use svn
with locks to avoid conflicts at all. (And branches and merges as
well.)
- Different file naming is not a solution for us, because some file
names are fixed. E.g. you have a directory "projectA" and you may want
to add a fixed named file like "summary.xyz". The file may not exist
(then the result has no summary) or may exist there (then summary is
added to the result).

Generally, it's not a blocker for us. We will add some workaround for
this to our app. And our customers using CLI would have to be more
cautious. I just still think if Subversion would allow locking and
unlocking for non-existing paths it would improve usability in such
scenarios.

Andy

On Tue, 3 Jun 2025 at 16:00, Andreas Stieger <andreas.stie...@gmx.de> wrote:
>
>
> On 2025-06-03 10:59, Daniel Sahlberg wrote:
> > I think the best option would be to teach `svn commit` to SET a lock
> > after commit (much like it can be told to not RELEASE the lock on an
> > already committed file). Then your workflow would be:
> > 1. Create a new empty file.
> > 2. Add it.
> > 3. Commit it, with the new --set-lock option.
>
> Except commit works on a PATH which may be a WC, and the committed item
> is not necessarily the exhaustive list of items to be locked. Also this
> still creates a revision which may no be desired.
>
> > 4. Edit the file, adding whatever content you need.
> > 5. Commit it (possibly with --no-unlock if you'd like to repeat steps
> > 4 and 5).
>
> This seems to be a marginal improvement, if any.
>
> Let's look at this this way: This operation is a conflict in /any /scm,
> even content-addressable ones with weaker file identities. In svn the
> file identity is a strong one, hence the need for a tree conflict. Are
> we dealing with a case of a feature request to cover difficult UX for
> resolving tree conflicts? Mind you that even if we "fix" this the same
> project will see issues when they start branching and merging.
>
> The initial question was 'how to use locks to prevent tree conflicts.
> The premise was that locks are otherwise used in the project to
> serialize changes for non-mergable content. If we rephrase it then we
> may arrive at something better: How do we have fewer tree conflicts? I
> would point to time or uuid based naming address this for a linear
> development model. Alternatively I would suggest feature branches by
> default, and serializing to the final file name (as copy) when
> reintegrating.
>
> IMHO this belongs higher in the stack.
>
> Andreas
>

Reply via email to