From: Junio C Hamano Date: Fri, 17 Nov 2017 02:14:13 GMT Subject: Re: [PATCH v4 4/6] list-objects: filter objects in traverse_commit_list Message-ID: In-Reply-To: <20171116215725.k44e3alk2lq6bbwu@sigill.intra.peff.net> Jeff King writes: > Those encodings don't necessarily need to be the same, because they're > about transport. Inside each process we'd have the raw bytes, and encode > them as appropriate to whatever sub-program we're going to pass to (or > not at all if we skip the shell for sub-processes, which is usually a > good idea). Yes, I share the same feeling. It does not help that the series defines its own notion of arg_needs_armor() and uses it to set a field called requires_armor that is not yet used, the definition of "armor"ing being each byte getting encoded as two hexadecimal digits without any sign (which makes me wonder what a receiver of "deadbeef" would do---did it receive an armored string or a plain one???). I do not understand why these strings are not passed as opaque sequences of bytes and instead converted at this low a layer.