Problem with propset svn: ignore - possibly Vista related

As I understand it, the command to ignore the contents of a directory using SVN is:

svn propset svn:ignore "*" tmp/ 

This should set the ignore property in the contents of the tmp , right? In other words, the wildcard is specified as the ignore value in the tmp directory. The problem is what happens in my windows window:

 > svn propset svn:ignore "*" ./tmp property 'svn:ignore' set on 'app' property 'svn:ignore' set on 'config' property 'svn:ignore' set on 'db' property 'svn:ignore' set on 'doc' property 'svn:ignore' set on 'lib' property 'svn:ignore' set on 'log' property 'svn:ignore' set on 'nbproject' property 'svn:ignore' set on 'public' [etc...] 

This is not true. Am I doing something wrong (or maybe I'm going crazy), or is my svn on Windows broken?

Some notes:

> svn --version
svn, version 1.5.2 (r32768)
compiled Aug 28 2008, 19:05:34


Update: I just tried this on a computer running Windows XP and it works as expected. Thus, either this is a problem with Vista or a problem with my Vista configuration. Can anyone else reproduce this issue on Vista? I just noticed that Vista is not listed as one of the supported platforms on the CollabNet page.

+4
source share
8 answers

The team should work as you expect.

* gets globbed, which he shouldn't do. So you work:
svn propset svn:ignore [value] app config db doc lib log nbproject public ... tmp
(since the application was the first affected folder, I guess there is another folder in front of it).

2 things you can try:

  • Specify the list file: svn propset svn:ignore tmp -F .svnignore
  • Just specify the path: svn propset svn:ignore tmp . This should open the default text editor (if configured) so that you can write and save the list.

Reply to comment

Since you are trying to fix this setting, propedit and propdel will work fine - especially if you have other changes to the directory.

But if you don't have any other changes to worry about (check svn st ), it will be faster to use svn revert -R and svn propset .

+5
source

It seems that Microsoft, in its infinite wisdom, has changed the behavior of the wildcard expansion in Windows Vista :

Thus, instead of passing the escaped pattern, it expands:

In Win 95, 98, 2000, XP, the application works as expected: it is a wildcard extension when the parameters are similar to "* .txt", and it is NOT when the parameters are similar to "* .txt". In Windows Vista, the wildcard extension characters always occur or, in other words, double quotes DO NOT suppress it.

This topic is discussed further on the Collabnet forum.

+8
source

This does not answer your svn question, but why are you trying to ignore the entire contents of the directory? It seems to me that if you want to create a temporary directory at some point in the assembly, you should make the directory part of the assembly instead of being there from the repo.

Are you trying to ignore it because it already exists and you cannot delete it?

Anyway, from my unix command line, this worked for me to ignore the non-screen file in the tmp directive

  $ svn --version
 svn, version 1.5.1 (r32289)
    compiled Aug 28 2008, 10:00:12

 $ svn propset svn: ignore '*' tmp

Is Windows Hawking your quote?

+3
source

It seems to me that the svn.exe binary compiled for Windows performs a built-in grind, which it usually will not do in a unix assembly, because it is expected that the unix shell will make globes when building the line command. I would think of this unexpected behavior, especially since you cannot work around the globe.

As others have pointed out, you can provide * using the -F option or interactively in a text editor.

However, I think you may not be going about this in the easiest way. To ignore the entire subdirectory, I would do something like this:

 svn propset svn:ignore tmp . 

This sets the svn:ignore property . (the current directory, the parent element of tmp/ ), which tells it to ignore the tmp subdirectory and everything below it.

+3
source

What version of subversion are you using?

I tried 1.5.2 on Windows and it only changed the property in the tmp directory:

 [C:\Temp\temp] :svn propset svn:ignore "*" tmp/ property 'svn:ignore' set on 'tmp' 

and

 [C:\Temp\temp] :svn proplist * svn: Skipping argument: '.svn' ends in a reserved name Properties on 'tmp': svn:ignore 
+2
source

For a single-line interface used in shell scripts using the -F alternative, simply try the following:

 echo "*" > .svnignore && svn propset svn:ignore <path> -F .svnignore && rm .svnignore 
+1
source

Try this if there is no slash. In addition, the tmp directory itself must be added to the repository.

0
source

It makes sense to use the SVN GUI (unless you are a masochist!). If you are on Windows TortoiseSVN, you must be the first port of call. Right-click on the file you want to ignore, then click "TortoiseSVN β†’ Properties". In the properties dialog box, you can ignore the entire directory by clicking on the "Name" drop-down arrow and selecting "svn: ignore". Then, in the value field, simply enter "*" for everyone. Of course, all this without quotes.

0
source

Source: https://habr.com/ru/post/1277388/


All Articles