tags:

views:

1445

answers:

3

Problem:

edited files on windows, using git-bash, to fix IE7 problems

committed, pushed to github repo

booted back into linux

pulled from repo

merge conflict in dozens of files

used 'git reset --hard'

What can I do to get back on track?

UPDATE: please look at the following for a clearer picture (no irony intended)

(I think the problem is one that I often encounter, that the sphinx files are platform-dependant, and I don't know how to skip them in the pull.)

jess@home:~$ cd Rails/nutrograph/
jess@home:~/Rails/nutrograph$ git rm nutrograph/
fatal: pathspec 'nutrograph/' did not match any files
jess@home:~/Rails/nutrograph$ git pull
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From [email protected]:shalunov/nutrograph
   1925d73..1ed7f46  master     -> origin/master
Updating 1925d73..1ed7f46
TODO: needs update
app/models/data_link.rb: needs update
app/models/footnote.rb: needs update
app/models/static_chart.rb: needs update
app/views/food_description/index.haml: needs update
app/views/food_description/titles.haml: needs update
app/views/site/about.html.erb: needs update
app/views/static_page/_random_foods.haml: needs update
app/views/static_page/index.haml: needs update
app/views/static_page/show.haml: needs update
app/views/static_page/sweet-potato-cooked-boiled-without-skin: needs update
config/development.sphinx.conf: needs update
config/environment.rb: needs update
db/migrate/10_create_food_comparisons.rb: needs update
db/sphinx/development/food_description_core.spa: needs update
db/sphinx/development/food_description_core.sph: needs update
db/sphinx/development/food_description_core.spl: needs update
public/static_pages/beans-snap-green-cooked-boiled-drained-with-salt: needs update
public/static_pages/butter-salted: needs update
public/static_pages/cheese-muenster: needs update
public/static_pages/sweet-potato-cooked-boiled-without-skin: needs update
test/fixtures/data_links.yml: needs update
test/fixtures/footnotes.yml: needs update
test/fixtures/static_charts.yml: needs update
test/unit/static_chart_test.rb: needs update
vendor/plugins/haml/init.rb: needs update
error: Entry 'app/views/static_page/index.haml' not uptodate. Cannot merge.
jess@home:~/Rails/nutrograph$ l
app/     CSV_files/  doc/  log/            public/   README.rdoc  spec/     test/  TODO             vendor/
config/  db/         lib/  Nutrograph.pdf  Rakefile  script/      stories/  tmp/   utf8_general_ci
jess@home:~/Rails/nutrograph$ mkdir backup
jess@home:~/Rails/nutrograph$ cd backup/
jess@home:~/Rails/nutrograph/backup$ git clone [email protected]:shalunov/nutrograph.git
Initialized empty Git repository in /home/jess/Rails/nutrograph/backup/nutrograph/.git/
remote: Counting objects: 2346, done.
remote: Compressing objects: 100% (2025/2025), done.
remote: Total 2346 (delta 958), reused 996 (delta 146)
Receiving objects: 100% (2346/2346), 19.74 MiB | 373 KiB/s, done.
Resolving deltas: 100% (958/958), done.
Checking out files: 100% (867/867), done.
jess@home:~/Rails/nutrograph/backup$ script/server
bash: script/server: No such file or directory
jess@home:~/Rails/nutrograph/backup$ cd nutrograph/
jess@home:~/Rails/nutrograph/backup/nutrograph$ script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
/usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57:in `initialize': No such file or directory - /home/jess/Rails/nutrograph/backup/nutrograph/log/development.log (Errno::ENOENT)
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57:in `open'
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/servers/mongrel.rb:57
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:355:in `new_constants_in'
    from /usr/lib/ruby/gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
    from /usr/lib/ruby/gems/1.8/gems/rails-2.1.2/lib/commands/server.rb:39
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/server:3
jess@home:~/Rails/nutrograph/backup/nutrograph$ git merge
usage: git-merge [options] <remote>...
   or: git-merge [options] <msg> HEAD <remote>

    --stat                show a diffstat at the end of the merge
    -n                    don't show a diffstat at the end of the merge
    --summary             (synonym to --stat)
    --log                 add list of one-line log to merge commit message
    --squash              create a single commit instead of doing a merge
    --commit              perform a commit if the merge succeeds (default)
    --ff                  allow fast forward (default)
    -s, --strategy ...    merge strategy to use
    -m, --message ...     message to be used for the merge commit (if any)

jess@home:~/Rails/nutrograph/backup/nutrograph$ git merge origin/master
Already up-to-date.
jess@home:~/Rails/nutrograph/backup/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph/backup/nutrograph$ cd ../..
jess@home:~/.local/share/Trash/files$ cd
jess@home:~$ cd Rails/nutrograph/
jess@home:~/Rails/nutrograph$ git merge
usage: git-merge [options] <remote>...
   or: git-merge [options] <msg> HEAD <remote>

    --stat                show a diffstat at the end of the merge
    -n                    don't show a diffstat at the end of the merge
    --summary             (synonym to --stat)
    --log                 add list of one-line log to merge commit message
    --squash              create a single commit instead of doing a merge
    --commit              perform a commit if the merge succeeds (default)
    --ff                  allow fast forward (default)
    -s, --strategy ...    merge strategy to use
    -m, --message ...     message to be used for the merge commit (if any)

jess@home:~/Rails/nutrograph$ git merge orgin
orgin - not something we can merge
jess@home:~/Rails/nutrograph$ git merge orgin/master
orgin/master - not something we can merge
jess@home:~/Rails/nutrograph$ git rebase orgin/master
TODO: needs update
app/views/static_page/index.haml: needs update
config/development.sphinx.conf: needs update
config/environment.rb: needs update
db/sphinx/development/food_description_core.spa: needs update
db/sphinx/development/food_description_core.sph: needs update
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git reset --hard
HEAD is now at 1925d73 got rid of "Nutrition Facts" in view
jess@home:~/Rails/nutrograph$ git pull
Updating 1925d73..1ed7f46
Fast forward
 app/views/layouts/application.haml |   25 +++++++++++--------------
 app/views/static_page/index.haml   |    6 +++---
 nutrograph                         |    1 +
 public/javascripts/tabs.js         |    4 +++-
 public/stylesheets/sass/site.sass  |   16 +++++++++-------
 public/stylesheets/site.css        |   14 ++++++++------
 6 files changed, 35 insertions(+), 31 deletions(-)
 create mode 160000 nutrograph
jess@home:~/Rails/nutrograph$ script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails 2.1.2 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at 0.0.0.0:3000
** Starting Rails with development environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
** Rails signals registered.  HUP => reload (without restart).  It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:3000
** Use CTRL-C to stop.


Processing SiteController#index (for 127.0.0.1 at 2008-11-28 16:45:38) [GET]
  Session ID: aa0ab6213969dc2ce78472f9c5f57258
  Parameters: {"action"=>"index", "controller"=>"site"}
  SQL (0.000153)   SET NAMES 'utf8'
  SQL (0.000077)   SET SQL_AUTO_IS_NULL=0
  StaticPage Columns (0.000841)   SHOW FIELDS FROM `static_pages`
 .
 .
 .
 .
Rendering template within layouts/application
Rendering static_page/index
Completed in 0.69965 (1 reqs/sec) | Rendering: 0.34820 (49%) | DB: 0.26384 (37%) | 200 OK [http://localhost/4000-beef-round-top-round-separable-lean-only-trimmed-to-quarter-inch-fat-select-cooked-braised]
^C** INT signal received.
Exiting
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$ git pull origin/master
fatal: 'origin/master': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
jess@home:~/Rails/nutrograph$ rm vendor/plugins/haml/init.rb 
rm: cannot remove `vendor/plugins/haml/init.rb': No such file or directory
jess@home:~/Rails/nutrograph$ haml --rails .
Directory ./vendor/plugins/haml already exists, overwrite [y/N]? y
Haml plugin added to .
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git fetch origin
jess@home:~/Rails/nutrograph$ git merge origin/master
Already up-to-date.
jess@home:~/Rails/nutrograph$ git rebase origin/master
vendor/plugins/haml/init.rb: needs update
jess@home:~/Rails/nutrograph$ git pull
Already up-to-date.
jess@home:~/Rails/nutrograph$
+6  A: 

It sounds like you need to set the line ending options in Windows:

git config core.autocrlf true

This will convert the line endings from LF to CRLF on Windows and back again on git add. Without this, git thinks that you changed the whole file's line endings from LF to CRLF, which is likely to cause merge conflicts.

Also, your description sounds like you might be trying to share the same working repository between Windows and Linux in a dual boot situation. I would not recommend this for the above reason. Use separate repositories for each OS.

Greg Hewgill
A: 

It's actually not a line feed problem, as I set the e text editor to use unix style line endings. tho, at this point, i don't know what the problem is, just that I need a slolution.

Are you ignoring that I ran `git reset --hard' ??

Jesse
A: 

I'm not sure why you posted this whole transcript, it does show you're not just having line ending problems. Perhaps you assume that the several problems you had all had one cause.

I'll guess that you created this repo on your linux system, then uploaded it to GitHub, then cloned to your Windows system. When you clone a repo, Git sets some config parameters so that it knows how to do git pull later, but when you are create a remote repository, you have to set those manually. (That's not clearly documented anywhere that I've seen.)

After creating the GitHub repo, you could have set on your linux system:

$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master

These configure git so future git pull's from this repo will merge all remote changes automatically. With these in place your pull would have worked.

Cloning the remote repository into a subdirectory solved this very nicely, because cloning did set the configs so that pulling would work from your linux system. Misspelling 'origin' as 'orgin' may have covered up the fact that your pull would work.

If this makes sense to you, I suggest you remove the transcript down to starting up Rails to make it easier to focus on the other problem you had.

Paul