From: Ryan Anderson Date: Fri, 29 Apr 2005 19:50:55 GMT Subject: Re: More problems... Message-ID: <20050429195055.GE1233@mythryan2.michonline.com> In-Reply-To: <20050429182708.GB14202@pasky.ji.cz> On Fri, Apr 29, 2005 at 08:27:08PM +0200, Petr Baudis wrote: > Dear diary, on Fri, Apr 29, 2005 at 06:01:27PM CEST, I got a letter > where Russell King told me that... > > rmk@dyn-67:[linux-2.6-rmk]:<1049> cg-update origin > > `../linux-2.6/.git/objects/00/78aeb85737197a84af1eeb0353dbef74427901' -> `.git/objects/00/78aeb85737197a84af1eeb0353dbef74427901' > > cp: cannot create link `.git/objects/00/78aeb85737197a84af1eeb0353dbef74427901': File exists > > > > By that time, the object files in the reference tree appear to have > > a newer timestamp than the corresponding ones in my local tree, and > > cp -lua fails. > > I'm now away ,unfortunately, and no immediate idea stems to my mind on > how to fix it. Ideas welcomed - I need to hardlink missing entries from > one tree to another; it would be enough to be able to just tell cp to > ignore already present files. > > Could you please try to give cp the -f flag? Why not just use "rsync" for both remote and local synchronization, and provide a "relink" command to scan two .git/objects/ repositories and hardlink matching files together? With the SHA1 hash, you can even have a --unsafe option that just compares the has names and does a link based purely off of that and the stat(2) results of both files. (I'd expect that a ... safer variant would extract both files and compare them, but the --unsafe should be sufficient, in practice, I would think.) -- Ryan Anderson sometimes Pug Majere