On 06.11.2018 21:11, Bo Berglund wrote:
> I have a project where I want to commit the modified sources in the
> top folder but want to prevent it from recursing to subdirectories,
> which hold the compiled binaries. These are only to be committed when
> the sources are stable.
>
> I looked at svn ci with the --depth argument, but I do not understand
> the wording of the docs:
> http://svnbook.red-bean.com/en/1.7/svn.ref.svn.html#svn.ref.svn.sw.depth
>
> it says:
>
> --depth ARG
>
> Instructs Subversion to limit the scope of an operation to a
> particular tree depth. ARG is one of empty (only the target itself),
> files (the target and any immediate file children thereof), immediates
> (the target and any immediate children thereof), or infinity (the
> target and all of its descendants—full recursion).
>
> The problem I have is in the definition of "target"...
"Target" is any file or directory that you tell the command to operate
on. For example, when you say:
svn commit foo bar
"foo" and "bar" are targets for 'svn commit'. You can omit explicit
targets for some commands — svn commit is one of them — in which case
the implicit target is the current directory; so,
svn commit
means exactly the same as
svn commit .
> I am doing the operation inside the top level of the WC tree (where
> the .svn dir is located).
> The command will be:
> svn ci --depth <argument>
>
> What should I use as argument so that only the changed files in the
> current dir are committed?
svn commit --depth files
(or 'svn commit --depth files .') will only commit /files/ that in the
current directory. On the other hand,
svn commit --depth immediates
will commit files /and/ directories, but will not recurse into the
directories. Basically this means that changed files and property
changes on directories in the current dir will be committed, but nothing
else.
> empty does not work for me because the dir is NOT empty
That's not what '--depth empty' means. It means "commit only the target
itself", so if the target is a directory, it will only commit any
property changes on that directory.
> files does not work because I don't understand what "file children" is
Files within the target direcory.
> immediates clearly would include subdirs too?
Yes, but nothing inside those subdirs.
> infinity not what I want, full recursion...
>
> Tried to google but I only get hits that deal with the opposite, how
> to exclude file commit.
>
> I want to block recursion into subdirectories...
You want either 'svn commit --depth files' or 'svn commit --depth
immediates', depending on whether or not property changes on directories
matter.
-- Brane
Received on 2018-11-06 23:13:17 CET