[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

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

From: David Chapman <dcchapman_at_acm.org>
Date: Mon, 25 Apr 2011 20:27:00 -0700

(moving top posting to bottom)

>
>> ----- Original Message -----
>>
>> From: richard Cavell
>>
>> Sent: 04/26/11 10:36 AM
>>
>> To: users_at_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         dcchapman_at_acm.org
     Chapman Consulting -- San Jose, CA
Received on 2011-04-26 05:27:41 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.