From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: fractional file timestamps in tramp-adb Date: Fri, 15 Feb 2019 14:37:32 -0800 Organization: UCLA Computer Science Department Message-ID: <4725294c-4855-5b2c-a053-cee9177bc8ef@cs.ucla.edu> References: <281200e8-bc54-e390-94f8-895345af524c@cs.ucla.edu> <878syidsrf.fsf@gmx.de> <27d01654-9b2e-3bf2-7eca-146854b68a0c@cs.ucla.edu> <87zhqxcvyj.fsf@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------13438A76FA01F8F30C96B649" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="136817"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 Cc: Emacs development discussions To: Michael Albinus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Feb 15 23:38:26 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gum7l-000ZTQ-CU for ged-emacs-devel@m.gmane.org; Fri, 15 Feb 2019 23:38:25 +0100 Original-Received: from localhost ([127.0.0.1]:48064 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gum7k-0004BI-6a for ged-emacs-devel@m.gmane.org; Fri, 15 Feb 2019 17:38:24 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42421) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gum73-0004B1-81 for emacs-devel@gnu.org; Fri, 15 Feb 2019 17:37:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gum71-0004Jo-Vp for emacs-devel@gnu.org; Fri, 15 Feb 2019 17:37:41 -0500 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:36794) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gum71-0004HE-LO for emacs-devel@gnu.org; Fri, 15 Feb 2019 17:37:39 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id F09BD16136F; Fri, 15 Feb 2019 14:37:36 -0800 (PST) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 7qf7sSsLz7PC; Fri, 15 Feb 2019 14:37:36 -0800 (PST) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1C81E161370; Fri, 15 Feb 2019 14:37:36 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0zNaaBjHp5nO; Fri, 15 Feb 2019 14:37:36 -0800 (PST) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 00888161368; Fri, 15 Feb 2019 14:37:35 -0800 (PST) Openpgp: preference=signencrypt Autocrypt: addr=eggert@cs.ucla.edu; prefer-encrypt=mutual; keydata= xsFNBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqfhpxxdGA9 Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9XmAAtmXqeZVIYX/UFS 96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Ygd7gx07Auwp7iw7eNvnoDTAl KAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kghy+P6au6PrIIhYraeua7XDdb2LS1en3Ss mE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZK QMr9amVPknjfPmJISqdhgB1DlEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2 Sf1tk5eU8MBiyN/bZ03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujC OJVxq2kljBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+ KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6CnrQzvJbB n6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQABzSBQYXVsIEVnZ2Vy dCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PsLBfgQTAQIAKAUCTIByZAIbAwUJEswDAAYLCQgHAwIG FQgCCQoLBBYCAwECH In-Reply-To: <87zhqxcvyj.fsf@gmx.de> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:233400 Archived-At: This is a multi-part message in MIME format. --------------13438A76FA01F8F30C96B649 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2/15/19 12:11 AM, Michael Albinus wrote: > I'm afraid, I'm not an experienced Android developer (tramp-adb.el was > written by somebody else). Any help appreciated! Older versions of toybox touch mishandle nanoseconds, and perhaps you've run into one of those. How about the attached patch, to try fractional timestamps (with "Z" for UTC) if it works, and fall back on the existing code otherwise? Plus, we can fall back on touch -t for hosts that don't yet support POSIX-2008, though that may be overkill nowadays. --------------13438A76FA01F8F30C96B649 Content-Type: text/x-patch; name="0001-Port-tramp-adb-to-various-touch-platforms.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-Port-tramp-adb-to-various-touch-platforms.patch" >From c4dad9e5d60153870cca647ece7e266b4eb4e19e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 15 Feb 2019 14:36:30 -0800 Subject: [PATCH] Port tramp-adb to various 'touch' platforms * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times): Try nanoseconds first, then plain seconds, then touch -t. --- lisp/net/tramp-adb.el | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index 22f2c5f6bf..4fba4e14f3 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -677,11 +677,22 @@ tramp-adb-handle-set-file-times (tramp-compat-time-equal-p time tramp-time-doesnt-exist) (tramp-compat-time-equal-p time tramp-time-dont-know)) (current-time) - time))) + time)) + (quoted-name (tramp-shell-quote-argument localname))) + ;; Older versions of toybox 'touch' mishandle nanoseconds and/or + ;; trailing "Z", so fall back on plain seconds if nanoseconds+Z + ;; fails. Also, fall back on old POSIX 'touch -t' if 'touch -d' + ;; (introduced in POSIX.1-2008) fails. (tramp-adb-send-command-and-check - v (format "touch -d %s %s" + v (format (concat "touch -d %s %s 2>/dev/null || " + "touch -d %s %s 2>/dev/null || " + "touch -t %s %s") + (format-time-string "%Y-%m-%dT%H:%M:%S.%NZ" time t) + quoted-name (format-time-string "%Y-%m-%dT%H:%M:%S" time t) - (tramp-shell-quote-argument localname)))))) + quoted-name + (format-time-string "%Y%m%d%H%M.%S" time t) + quoted-name))))) (defun tramp-adb-handle-copy-file (filename newname &optional ok-if-already-exists keep-date -- 2.20.1 --------------13438A76FA01F8F30C96B649--