Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 333051 - Um, where'd my commits go?
Summary: Um, where'd my commits go?
Status: RESOLVED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Git (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Eclipse Webmaster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-21 21:18 EST by Miles Parker CLA
Modified: 2010-12-22 20:39 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Miles Parker CLA 2010-12-21 21:18:34 EST
OK, I feel like I must be imagining this somehow, but all of my Git changes for last few weeks have disappeared from repos and from log. Looking at the log it all get's cut off on December 7th, and I've made many many changes since then:

http://git.eclipse.org/c/amp/org.eclipse.amp.git/log/

It's possible that I've done something screwy on my end through EGit/JGit, but no matter what I screwed up, I shouldn't ever be able to overwrite the whole history, right?
Comment 1 Denis Roy CLA 2010-12-22 09:52:38 EST
I get the distinct feeling that all your pushes are going into different branches, and none of them have been merged back with master.

Your dec 7 entry from 'git log'  Shows this:

Date:   Tue Dec 7 10:37:09 2010 -0800

    Change version to appropriate.


And look at your 'master':

droy@build:/gitroot/amp/org.eclipse.amp.git> git show-branch --all
* [master] Change version to appropriate.
 ! [origin] Packaging.
--
*  [master] Change version to appropriate.
*  [master^] New promotion.
*  [master~2] Data execution fixes. Work in progress.
*  [master~3] Missing file from git.
*  [master~4] Improvements to Data Models, adding sweep support. WARNING: Breaks existing adata models. https://bugs.eclipse.org/bugs/show_bug.cgi?id=331165 https://bugs.eclipse.org/bugs/show_bug.cgi?id=331166
*  [master~5] Build promote.
*  [master~6] Build from xtext.
*  [master~7] Add tests.
*  [master~8] Build.
*  [master~9] Added back missing ascape feature.
*  [master~10] Build.
*  [master~11] Build.
*  [master~12] Build.
*  [master~13] Build.
*  [master~14] BUild.
*  [master~15] Build.
*  [master~16] Build.
*  [master~17] Move build feature to its proper place.
*  [master~18] BUild.
*  [master~19] Build.
*  [master~20] Build.
*  [master~21] Build.
*  [master~22] Build.
*  [master~23] Build.
*  [master~24] Build.
*  [master~25] Build
*  [master~26] Buold.
*  [master~27] BUild.
*  [master~28] Build.Build.
*  [master~29] Build.
*  [master~30] Build.
*  [master~31] Dependencies.
*  [master~32] Build. ARGHHHH!!!!!!!!!!!!!!!
*  [master~33] Build.
*  [master~34] build.
*  [master~35] Build.
*  [master~36] Build.
*  [master~37] Argh.
*  [master~38] Build.
*  [master~39] WTF re: matches?
*  [master~40] Bjild.
*  [master~41] Build.
*  [master~42] More build...
*  [master~43] Do we need platform?
*  [master~44] Forget that.
*  [master~45] XPnad.
*  [master~46] Grab bit fomr XText rmap.
*  [master~47] Get rid of xtext.xtend.
*  [master~48] Build
*  [master~49] BUild hell.
*  [master~50] BUild.
*  [master~51] Build.
*  [master~52] Bui;d.
*  [master~53] BUild.
*  [master~54] Build.
*  [master~55] Build.
*  [master~56] Build
*  [master~57] Build.
*  [master~58] Build work.
*  [master~59] Align amp releng with other modeling projects.
*  [master~60] Build. Simplify as much as possible.
*  [master~61] Add build feature content.
*  [master~62] Match to other Modeling Projects.
*  [master~63] Build
*  [master~64] build.
*  [master~65] build
*  [master~66] Build.
*  [master~67] Build.
*  [master~68] Build.
*  [master~69] Build.
*  [master~70] Build.
*  [master~71] Build.
*  [master~72] Build.
*  [master~73] Build stuff.
*  [master~74] Build..
*  [master~75] https://bugs.eclipse.org/bugs/show_bug.cgi?id=325535 Oteher packgin and doc fixes.
*  [master~76] Minor refactoring.
*  [master~77] Change stat name to differentiate for Scape.
*+ [origin] Packaging.


How do you perform your git push to us?
Comment 2 Denis Roy CLA 2010-12-22 10:03:29 EST
A 'find recent changed files' operation shows your repository does have changed files:

droy@build:/gitroot/amp/org.eclipse.amp.git> find . -mtime -14 -ls
3585203    0 drwxrwsr-x   2 mparker  modeling.amp       96 Dec 21 20:39 ./refs/heads
6958102    4 -rw-rw-r--   1 mparker  modeling.amp       41 Dec 21 20:39 ./refs/heads/master
6792788    6 drwxrwsr-x 237 mparker  modeling.amp     5688 Dec 21 16:34 ./objects
6871749    0 drwxrwsr-x   2 mparker  modeling.amp      272 Dec 14 18:21 ./objects/00
6942554    4 -r--r--r--   1 mparker  modeling.amp     1715 Dec 14 18:21 ./objects/00/3d995075114dbbf0bd125bd4a41d4f09d95ef5
................etc


A git fsck shows dangling commits, but as I understand it, this is not a problem.

droy@build:/gitroot/amp/org.eclipse.amp.git> git fsck --full
dangling commit 101714e1e10511b1bf8f6d3bdacf17a8b8bbec43
dangling commit 656d816278571a3e8182e544a9dab9cd4ba94b77
dangling commit 51c633d11589fe6f4278dc167a52e8925bb2f8b8


So .. there is stuff there, but where it is, and how do you get it, is part of the Git user voodoo I do not yet comprehend.
Comment 3 Miles Parker CLA 2010-12-22 13:39:42 EST
I don't comprehend any of it either. I've been using EGit to push this from two different machines, always using master/origin -- I don't think I've done anything unusual; I've never created a separate branch. I don't understand any of this voodoo either but it is more than a bit worrying. Luckily I have a recent hudson build that I've just archived so if things have gone totally to hell I can just replace everything. Or I'll just go back to CVS. A VCS that can lose a whole bunch of work opaquely and with no easy way to roll back scares me more than a little bit.

Looking at what I can vaguely understand from Git docs, I don't think I can get any information on this without looking at the reflogs and stuff and I don't think I can do that without ssh access. Can you grant that temporarily?

(In reply to comment #2)
> A 'find recent changed files' operation shows your repository does have changed
> files:
> 
> droy@build:/gitroot/amp/org.eclipse.amp.git> find . -mtime -14 -ls
> 3585203    0 drwxrwsr-x   2 mparker  modeling.amp       96 Dec 21 20:39
> ./refs/heads
> 6958102    4 -rw-rw-r--   1 mparker  modeling.amp       41 Dec 21 20:39
> ./refs/heads/master
> 6792788    6 drwxrwsr-x 237 mparker  modeling.amp     5688 Dec 21 16:34
> ./objects
> 6871749    0 drwxrwsr-x   2 mparker  modeling.amp      272 Dec 14 18:21
> ./objects/00
> 6942554    4 -r--r--r--   1 mparker  modeling.amp     1715 Dec 14 18:21
> ./objects/00/3d995075114dbbf0bd125bd4a41d4f09d95ef5
> ................etc
> 
> 
> A git fsck shows dangling commits, but as I understand it, this is not a
> problem.
> 
> droy@build:/gitroot/amp/org.eclipse.amp.git> git fsck --full
> dangling commit 101714e1e10511b1bf8f6d3bdacf17a8b8bbec43
> dangling commit 656d816278571a3e8182e544a9dab9cd4ba94b77
> dangling commit 51c633d11589fe6f4278dc167a52e8925bb2f8b8
> 
> 
> So .. there is stuff there, but where it is, and how do you get it, is part of
> the Git user voodoo I do not yet comprehend.
Comment 4 Denis Roy CLA 2010-12-22 15:20:20 EST
(In reply to comment #3)

> Looking at what I can vaguely understand from Git docs, I don't think I can get
> any information on this without looking at the reflogs and stuff and I don't
> think I can do that without ssh access. Can you grant that temporarily?


I've given you a real shell.  If you discover anything odd/unusual, please let me know.
Comment 5 Miles Parker CLA 2010-12-22 15:58:28 EST
I just checked my reflog and it was empty. :O That doesn't seem right, does it?

This is what I did:

/gitroot/amp/org.eclipse.amp.git> git reflog

And I get 0 lines.

(In reply to comment #4)
> (In reply to comment #3)
> 
> > Looking at what I can vaguely understand from Git docs, I don't think I can get
> > any information on this without looking at the reflogs and stuff and I don't
> > think I can do that without ssh access. Can you grant that temporarily?
> 
> 
> I've given you a real shell.  If you discover anything odd/unusual, please let
> me know.
Comment 6 Miles Parker CLA 2010-12-22 16:03:57 EST
Weird, I must have done something wrong, because it is now showing something there.I've got a checkout on the local repository which doesn't make any sense to me -- how could I do a checkout on the remote? But I think at least I see a glimmer of way ahead. I've got to find the last dangling bit and checkout to that, I suppose.

59f3687 HEAD@{0}: checkout: moving to 59f3687d2cf043de545b28772a78961c3b17c4ef
59f3687 HEAD@{0}: checkout: moving to 59f3687d2cf043de545b28772a78961c3b17c4ef
59f3687 HEAD@{0}: checkout: moving to 59f3687d2cf043de545b28772a78961c3b17c4ef
b85e80e HEAD@{1}: checkout: moving to refs/heads/master
59f3687 HEAD@{2}: checkout: moving to 59f3687d2cf043de545b28772a78961c3b17c4ef
b85e80e HEAD@{3}: commit: Change version to appropriate.
277e3d4 HEAD@{4}: commit: New promotion.


(In reply to comment #5)
> I just checked my reflog and it was empty. :O That doesn't seem right, does it?
> 
> This is what I did:
> 
> /gitroot/amp/org.eclipse.amp.git> git reflog
> 
> And I get 0 lines.
> 
> (In reply to comment #4)
> > (In reply to comment #3)
> > 
> > > Looking at what I can vaguely understand from Git docs, I don't think I can get
> > > any information on this without looking at the reflogs and stuff and I don't
> > > think I can do that without ssh access. Can you grant that temporarily?
> > 
> > 
> > I've given you a real shell.  If you discover anything odd/unusual, please let
> > me know.
Comment 7 Miles Parker CLA 2010-12-22 20:04:11 EST
OK, I think I've fixed this, by grabbing all of the dangling revisions, putting them into temp branches and then merging them back in. Yikes. Thanks for your help. I went ahead and setup ssh keys while I was in there. (I think Ialready had a real shell for build, I just didn't know that gitroot was accessible from there.)

What I still can't figure out is why most of the time when I do git reflog I get: 

[vi]
lines ?-?/? (END) 

Whereas once and a while I was able to see the actual reflog. Weird.
Comment 8 Miles Parker CLA 2010-12-22 20:05:01 EST
[I've recovered the missing changes.]
Comment 9 Denis Roy CLA 2010-12-22 20:07:07 EST
Good to read this.  I wonder what caused those dangling commits.

If you have the command lines handy, posting them here could perhaps help out the next person who encounters this.
Comment 10 Miles Parker CLA 2010-12-22 20:37:12 EST
Yeah good idea. But it was super confusing. Basically I flailed around a bit and eventually came up with something *like* this:

[git.eclipse]
>git fsck --full
dangling commit [some_ridiculously_long_hex_string]
dangling commit [another_one]
...
>git branch recovered1 [some_ridiculously_long_hex_string]
>git branch recovered2 [another_one]
...

[local]
mkdir tempgit
cd tempgit
git init
git clone ssh://mparker@git.eclipse.org/gitroot/amp/org.eclipse.amp.git
git merge recovered1    [this is where it get's a little fuzzy, may be missing a step here] 
git merge recovered2
...
git commit

YMMV, of course. I'd forgotten that whereas git reflog was flakey fsck always worked.
Comment 11 Miles Parker CLA 2010-12-22 20:39:08 EST
Oh, there's "obviously" a:

git push

missing there..