I'm seeing this behavior  with Sublime Text 3 (build 3059).

r@jayne:~$ tup -v
tup 0.7.2-8-g66748b0

Is there a fix for this ?


On Thursday, February 20, 2014 10:41:10 PM UTC-6, [email protected] wrote:
>
> On Thu, Feb 20, 2014 at 9:54 PM, john skaller <
> [email protected] <javascript:>> wrote:
>
>>
>> On 21/02/2014, at 11:22 AM, Mike Shal wrote:
>> >
>> > Ahh, thanks - I can reproduce it with Sublime Text 3. So somehow when 
>> it saves the file, it's not updating the ctime (only the mtime). We need to 
>> check the ctime because 'chmod' only affects the ctime. And I thought all 
>> other operations that affect mtime also update ctime (eg: 'touch', 'vim', 
>> etc all modify both ctime+mtime).
>> >
>> > I guess we need to check both times somehow on OSX? I'd prefer not to 
>> have to add another field to the database, but maybe there's a way to do it 
>> (like using max(ctime, mtime) as the timestamp or something). I'll have to 
>> fiddle around a bit...
>>
>>      st_ctime         Time when file status was last changed (inode data 
>> modification).  Changed by the
>>                       chmod(2), chown(2), link(2), mknod(2), rename(2), 
>> unlink(2), utimes(2) and
>>                       write(2) system calls.
>>
>>
>> Note: no mention is made of mmap().
>> Mmap man page says nothing either.
>>
>>
>> https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/mmap.2.html
>>
>> However Posix does:
>>
>> http://pubs.opengroup.org/onlinepubs/009695399/functions/mmap.html
>>
>> The st_ctime and st_mtime fields of a file that is mapped with MAP_SHARED 
>> and PROT_WRITE shall be marked for update at some point in the interval 
>> between a write reference to the mapped region and the next call to msync() 
>> with MS_ASYNC or MS_SYNC for that portion of the file by any process. If 
>> there is no such call and if the underlying file is modified as a result of 
>> a write reference, then these fields shall be marked for update at some 
>> time after the write reference.
>>
>>
>> So maybe Apple's mmap functions aren't Posix compliant?
>>
>>
> I'm not sure if mmap is a problem or not - I ran the editor through 
> dtruss, and I didn't see mmap explicitly called when the file was being 
> saved (I do see madvise, though). I did see it call exchangedata(), which 
> Sublime uses instead of rename() to swap the contents of the tmp file into 
> the real file. The exchangedata call appears to be what is responsible for 
> changing the mtimes without changing ctimes, so I added t4164 to check for 
> this.
>
> spamwax, can you try the latest master and see if it is working properly 
> now?
>
> Thanks,
> -Mike
>

-- 
-- 
tup-users mailing list
email: [email protected]
unsubscribe: [email protected]
options: http://groups.google.com/group/tup-users?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"tup-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to