Can SVN be configured to check specific files on specific operating systems only?

I have a client who delivered some data files to us. The client runs mostly on Linux and there are a few filenames that differ only in case (top / bottom), for example. R40

and R40

in the same folder. I've added them to your repository using a Linux-machine, but now, when I'm working with the repository in Windows, he says that some of the files are missing, because Windows is not case-sensitive filenames, and may not have the same time R40

and R40

in the folder. This prevents me from doing some SVN actions like starting a merge. Obviously I can't just change my file names and work with them, but we don't need the files when we're working on Windows.

Is there a way to work around this while keeping client files in a Linux checkout repository? We just want them to be in storage for convenience.

+3


source to share


2 answers


If Windows clients can ignore entire directories rather than specific files in directories, you can create a specific Windows view in the repository using the svn: externals property .

Let's say your repo looks like this:

/trunk/linux_and_windows_dir_1
/trunk/linux_only_dir_1
/trunk/linux_and_windows_dir_2
/trunk/linux_only_dir_2
...

      

You can create the following OS-related connecting lines:



/linux_trunk 
  svn:externals = 
    /trunk/linux_and_windows_dir_1
    /trunk/linux_only_dir_1
    /trunk/linux_and_windows_dir_2
    /trunk/linux_only_dir_2

/windows_trunk 
  svn:externals = 
    /trunk/linux_and_windows_dir_1
    /trunk/linux_and_windows_dir_2

      

Then start Lunux users and use linux_trunk. Windows users will check windows_trunk. Since both OS-specific trunks contain only external definitions, anything checked in them will be automatically checked into / trunk.

If a Windows user checks out a change in / windows _trunk / linux_and_windows_dir_1 then this change will also apply to / trunk / linux _and_windows_dir_1 and / Linux _trunk / linux_and_windows_dir_1.

As I said, this only works if you are specifying specific parts of Windows to play using directories, not individual files.

+1


source


Not. I don't know of any option or property to solve this problem directly with subversion. (Possible properties are listed here )

A possible workaround would be multiple "client clicks". (This is not a centralized operation by the subversion itself, and you need some access to each of these machines for client windows)



If you are using the TortoiseSVN client on Windows, you can install the client hook and do whatever you want in that script. But keep in mind to set up the client hook on each Windows machine separately.

For more information on client caches with TortoiseSVN, see the TortoiseSVN docs (in client side scripts) .

+1


source







All Articles