From: Junio C Hamano <hidden> Date: 2016-06-15 22:43:51
"Elijah Newren" [off-list ref] writes:
$ git diff @{2007-10-01}
warning: Log for '' only goes back to Wed, 24 Oct 2007 19:31:38 +0000.
fatal: bad object @{2007-10-01}
It appears that passing a date to git diff on any repository imported
by git-cvsimport will show this error, as long as the date is prior to
when the repository was imported.
That is not a cvsimport specific issue.
When you use "branch@{date}" notation, you are not asking a
question on the project history, but a question on the local
view from _your_ repository on that project.
$ git log --since=3.days.ago master
asks "go back from the master tip and show commits until you hit
the commit made earlier than that date and stop traversing".
On the other hand,
$ git show master@{3.days.ago}
asks "show the commit that was the tip of 'master' branch in my
repository three days ago." Maybe you pulled from your upstream
5 minutes ago, and the last time before that, you pulled three
weeks ago and did not do any development on the branch. In such
a case, the latter question will give you the tip of your
'master' as of three weeks ago which is the same as of three
days ago.
On Nov 15, 2007 11:06 PM, Junio C Hamano [off-list ref] wrote:
When you use "branch@{date}" notation, you are not asking a
question on the project history, but a question on the local
view from _your_ repository on that project.
Interesting; that makes sense from a merge or pull viewpoint, but
wouldn't it make more sense to have cvsimport ensure the commits are
treated as though they actually existed in master as of the date
specified in CVS?
Elijah
From: Robin Rosenberg <hidden> Date: 2016-06-15 22:43:52
fredag 16 november 2007 skrev Elijah Newren:
On Nov 15, 2007 11:06 PM, Junio C Hamano [off-list ref] wrote:
quoted
When you use "branch@{date}" notation, you are not asking a
question on the project history, but a question on the local
view from _your_ repository on that project.
Interesting; that makes sense from a merge or pull viewpoint, but
wouldn't it make more sense to have cvsimport ensure the commits are
treated as though they actually existed in master as of the date
specified in CVS?
Reflog do not work that way. They don't say when a commit entered a repo,
only when a ref changed. For a CVS import things could work as you suggest
but I think the confusion among newcomers would be massive if people start
using reflogs 'as if' it said anyting about when a commit entered. It can be used
as a hint.
Reflogs get pruned by git-gc and are not cloned (cannot be since they store
local-only information.
Use the --since and --until switches instead.
-- robin
On Nov 17, 2007 3:12 AM, Robin Rosenberg
[off-list ref] wrote:
fredag 16 november 2007 skrev Elijah Newren:
quoted
On Nov 15, 2007 11:06 PM, Junio C Hamano [off-list ref] wrote:
quoted
When you use "branch@{date}" notation, you are not asking a
question on the project history, but a question on the local
view from _your_ repository on that project.
Interesting; that makes sense from a merge or pull viewpoint, but
wouldn't it make more sense to have cvsimport ensure the commits are
treated as though they actually existed in master as of the date
specified in CVS?
Reflog do not work that way. They don't say when a commit entered a repo,
only when a ref changed. For a CVS import things could work as you suggest
but I think the confusion among newcomers would be massive if people start
using reflogs 'as if' it said anyting about when a commit entered. It can be used
as a hint.
Okay...so I guess my suggestion could be translated as: don't worry
about when the commit entered; instead make git-cvsimport mark the
refs as changed as of the CVS date mentioned instead of as of the
import time.
I guess there would be reluctance to do this whenever git-cvsimport
would be used for incremental commits on a repository that also had
local commits? Sounds like the issue is deeper than I first realized
and this probably isn't worth the effort it'd take.
Thanks for the explanations.
Elijah
From: Jan Hudec <hidden> Date: 2016-06-15 22:43:52
On Sat, Nov 17, 2007 at 08:39:08 -0700, Elijah Newren wrote:
Okay...so I guess my suggestion could be translated as: don't worry
about when the commit entered; instead make git-cvsimport mark the
refs as changed as of the CVS date mentioned instead of as of the
import time.
I guess there would be reluctance to do this whenever git-cvsimport
would be used for incremental commits on a repository that also had
local commits? Sounds like the issue is deeper than I first realized
and this probably isn't worth the effort it'd take.
Actually local commits don't need to be involved at all. Incremental import
is enough.
One good reason to use reflog is when you notice something does not work and
recall, that it worked yesterday evening. Than you need to know what you were
looking at at that time, not at what was latest, because you didn't
necessarily have to be up-to-date.
--
Jan 'Bulb' Hudec [off-list ref]