Re: [PATCH v4 1/2] git-p4: add test case for "Translation of file content failed" error
- From
Lars Schneider <larsxschneider@gmail.com>
- Date
- Sep 22, 2015, 10:12 UTC
- Message-ID
- <FAA838A1-CBD8-4716-ADDE-6CC912C19BE6@gmail.com>
- In-Reply-To
- <CAPig+cRV-RCdcmAHG+bRL6_yYYNCRqQPQ+v3KCXwC81StGKibg@mail.gmail.com>
On 22 Sep 2015, at 01:54, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 28 quoted lines
> On Mon, Sep 21, 2015 at 7:03 PM, Lars Schneider > <larsxschneider@gmail.com> wrote: >> On 21 Sep 2015, at 20:09, Junio C Hamano <gitster@pobox.com> wrote: >>> larsxschneider@gmail.com writes: >>>> +test_expect_success 'init depot with UTF-16 encoded file and artificially remove BOM' ' >>>> + ( >>>> + cd "db" && >>>> + p4d -jc && >>>> + # P4D automatically adds a BOM. Remove it here to make the file invalid. >>>> + sed -e "$ d" depot/file1,v >depot/file1,v.new && >>> >>> Do you need the space between the address $ (i.e. the last line) and >>> operation 'd' (i.e. delete it)? I am asking because that looks very >>> unusual at least in our codebase. >> >> Well, I am no “sed” pro. I have to admit that I found this snippet >> on the Internet and it just worked. If I remove the space then it >> does not work. I was not yet able to figure out why… anyone an idea? > > Yes, it's because $d is a variable reference, even within double > quotes. Typically, one uses single quotes around the sed argument to > suppress this sort of undesired behavior. Since the entire test body > is already within single quotes, however, changing the sed argument to > use single quotes, rather than double, will require escaping them: > > sed -e \'$d\' depot/file... > > Aside: You could also drop the unnecessary quotes from the 'cd' argument.
Thanks for the explanation. Plus you are correct with the quotes around “db”… just a habit.
@Junio: If it is no extra work for you, you can remove the quotes around “db”. I can also create a new patch roll including the sed change and the quote change if it is easier for you.
Best, Lars