From: Junio C Hamano <gitster@pobox.com>
To: Malik Rumi <malik.a.rumi@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: recover lost file
Date: Fri, 10 Nov 2023 13:09:55 +0900 [thread overview]
Message-ID: <xmqqmsvmw8oc.fsf@gitster.g> (raw)
In-Reply-To: <CAKd6oBxF8m09QnqZ46joVpcR3mrR4MRSO+kL8vELGwVhD=rgXg@mail.gmail.com> (Malik Rumi's message of "Thu, 9 Nov 2023 21:02:39 -0600")
Malik Rumi <malik.a.rumi@gmail.com> writes:
> I am looking for a lost file that was accidentally deleted about 18
> months ago. The docs I consulted are version 2.42.1. The git on my
> machine is version 2.34.1
>
> I followed the instructions on this page”
> https://git-scm.com/book/en/v2/Git-Tools-Searching , the section “Line
> Log Search”. But I got an error.
>
> malikarumi@Tetuoan2:~/Projects/hattie$ git grep titlesplit
> malikarumi@Tetuoan2:~/Projects/hattie$ git grep filesplit
> malikarumi@Tetuoan2:~/Projects/hattie$ git log -L :titlesplit
> fatal: -L argument not 'start,end:file' or ':funcname:file': :titlesplit
> malikarumi@Tetuoan2:~/Projects/hattie$ git log -L :titlesplit:
> fatal: -L argument not 'start,end:file' or ':funcname:file': :titlesplit:
>
> I don’t know the purpose of the colon. Is it a boundary marker? Does
> it belong at the front of the search object, the end, or both?
> 'start,end:file' sounds like the error message expects me to provide a
> start and an end, to which the obvious reply is - If I knew where it
> was, I wouldn’t be trying to find it.
Whatever documenttion that gave you "-L" perhaps did not give you a
good example.
$ git log -L"20,+5:helloworld.c"
$ git log -L"/^titlesplit(/,/^}/:helloworld.c"
$ git log -L":titlesplit:helloworld.c"
are ways to follow, how the range of lines in the helloworld.c file
of the CURRENTLY CHECKED OUT version, came about throughout the
history, going backwards. The way to specify the range in the
current version of helloworld.c file may be different (the examples
show "starting at line #20, for five lines", "starting at the line
that matches the pattern "^titlesplit(", and ending at the line that
matches the pattern "^}", or "the body of the 'titlesplit' function
(according to the xfuncname logic)"), but they share one important
detail that may make the feature unsuitable for your use case. You
need to exactly know where in the current version of which file the
line range you want to follow resides, but from your description I
am getting an impression that you do not even know the name of the
file.
You only said "a lost file" without giving any specifics, so it is
totally unclear to readers of your message how strings like
"titlesplit" and "filesplit" relate to what you are looking for. In
the above I randomly made a blind guess that it might be a function
name, but I may be totally off the mark.
- Do you mean "I think the file I removed had a name with either
titlesplit or filesplit in it?"
- Or do you mean "I know that the file had a definition of a
function whose name was either titlesplit or filesplit?"
- Or something completely different from the above two?
If I know all of the followings are true:
- I had the necessary contents committed in Git;
- I do not remember the filename at all, but I am sure I deleted it
and committed the deletion some time ago;
- I know the lost contents I am looking for had a string "frotz" in
it.
then I would probably try
$ git log -Sfrotz --diff-filter=D -p
which will look for all file deletions throughout the history,
limiting the output to those that had string "frotz" in them.
But again, it is unclear what useful clue you have to locate the
lost file from your description, so ...
next prev parent reply other threads:[~2023-11-10 6:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-10 3:02 recover lost file Malik Rumi
2023-11-10 4:09 ` Junio C Hamano [this message]
2023-11-10 5:27 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqmsvmw8oc.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=malik.a.rumi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).