Closed Bug 818490 Opened 12 years ago Closed 11 years ago

repo sync breaks everything all the time

Categories

(Firefox OS Graveyard :: GonkIntegration, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: hub, Unassigned)

Details

The command ./repo sync that we have to use to sync repository is always removing the current work in progress making it impossible to work on stuff and keep a tree current.

It is even more insulting that we use git that DO allow this.

Example:

- I was told yesterday that I should use Gecko 18 for gaia work. repo sync reset things to to the master branch.
gecko/: manifest switched refs/heads/gecko-18...master
gecko/: discarding 1291 commits removed from upstream

- I have a patch needed in gecko-misc to keep having crash report sent on my devel build because I work on crash reporter. I have to NOT FORGET TO REAPPLY IT. And of course, repo would have completely discarded it.
and this piece of rubbish actually reset my gecko-18 branch to track master

    gecko-18 merges with remote master
    gecko-18 pushes to gecko-18 (local out of date)

<SARCASM>Good job !</SARCASM>
Hub, how do we fix this?
Fixing repo or its configuration, or using something else.
Also repo sync does not update the top level repository. Not sure if it is because I have a custom patch or because it is just dumb.
Currently the top level repository is not managed repo.

repo's workflow is slightly different with git. To start a feature branch one have to use ./repo start <branch>, see ./repo help start
I always work on a branch in git. I name my branches dhylands-999999 where 999999 is the bug number.

So my normal workflow when I start on bug is to

modify files
git checkout -b dhylands-BUGNUM
git status to see what files I've modified
git add files
git commit (the first time)
git commit --amend (the 2nd and subsequent time)

repo sync will fail (on individual repositories) if you have modified files. But because it produces so much output, it's sometimes hard to tell if it fails. So I keep rerunning repo sync until I see an error or until I get just 

2007 >repo sync
Fetching projects: 100% (91/91), done.  
Syncing work tree: 100% (91/91), done.  

Now I can go back to the repos that I was working on and do:

git rebase origin dhylands-BUGNUM

where origin is the name of the remote. You can use:

git remote -v

to see the names of the remotes.
If you only run ./repo sync without ./repo init (as config.sh does), this is expected behaviour.

If this is still causing you trouble, please reopen the bug.
So by default |repo sync| will LOSE data (commits). That mean the defaults are wrong.

(bug still OPEN, just got bitten be it minutes ago)
This is a bug with upstream, per comment 3.  I don't believe that there is a setting which controls whether or not repo is going to delete commits.  Are you sure that the commits aren't in the reflog?

We should file there if we're having issues with it, but there's no action that can be taken in this bug.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.