(moving top posting to bottom)


----- Original Message -----

From: richard Cavell

Sent: 04/26/11 10:36 AM

To: users@subversion.apache.org

Subject: How to create a link that works between OS X and Ubuntu


Hi everyone. I'm developing a program on Ubuntu 10.10. The directory in which my project lives is part of my PATH. The executable that is built is called 'autobot'.

I type:

ln autobot a
a

(And my program runs correctly).

svn add a
svn propset svn:executable ON a
svn ci -m "Create shortcut"

Now on my OS X box, with the current directory set to the project directory, and with that directory also being a part of PATH (although it is not named identically to the Ubuntu one), I type:

svn up
a

And I get:

-bash: /source/Autobot/autobotwiki/a: cannot execute binary file

ls -l a gives me:

-rwxrwxrwx  1 richard  admin  55295 26 Apr 10:33 a

The same thing happens if I create the link on OS X and try to run it under Ubuntu. So how do I do this?

Richard


On 4/25/2011 7:38 PM, richard Cavell wrote:
Further experimentation shows that symbolic links work (ln -s autobot a for the first command). Are hard links supposed to work?

Richard


The hard link simply creates a new name for the file, which is probably operating system dependent (you didn't describe the build process completely). Subversion won't know the difference between the name "autobot" and the name "a"; each will look like an ordinary file. A symbolic link, however, is a different object type and Subversion can store it as such.

Try this:

ln autobot a1
ln -s autobot a2
ls -l

The link count for autobot and a1 will be 2; each name references the same file on disk. The symbolic link, however, is a pointer to a name. You can replace the file autobot without affecting a2, but if you replace autobot (rm autobot; make autobot) you will find that the connection between autobot and a is broken.

--
    David Chapman         dcchap...@acm.org
    Chapman Consulting -- San Jose, CA

Reply via email to