git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Re-done kernel archive - real one?

From
RKRussell King <rmk@arm.linux.org.uk>
Date
Apr 18, 2005, 21:53 UTC
Message-ID
<20050418225356.B16789@flint.arm.linux.org.uk>
In-Reply-To
<Pine.LNX.4.58.0504180802060.7211@ppc970.osdl.org>
On Mon, Apr 18, 2005 at 08:23:16AM -0700, Linus Torvalds wrote:
> NOTE NOTE NOTE! This is untested! I'm writing this within the email 
> editor, so do _not_ do this on a tree that you care about.
It did the right thing for me at least!
Show 25 quoted lines
> 	#!/bin/sh
> 	#
> 	# use "$1" or something in a real script, this 
> 	# just hard-codes it.
> 	#
> 	merge_repo=master.kernel.org:/pub/linux/kernel/people/torvalds/linux-2.6.git
> 
> 	echo "Getting object database"
> 	rsync -avz --ignore-existing $merge_repo/ .git/
> 
> 	echo "Getting remote head"
> 	rsync -avz $merge_repo/HEAD .git/MERGE_HEAD
> 
> 	head=$(cat .git/HEAD)
> 	merge_head=$(cat .git/MERGE-HEAD)
> 	common=$(merge-base $head $merge_head)
> 	if [ -z "$common" ]; then
> 		echo "Unable to find common commit between" $merge_head $head
> 		exit 1
> 	fi
> 
> 	# Get the trees associated with those commits
> 	common_tree=tree=$(cat-file commit $common | sed 's/tree //;q')
> 	head_tree=tree=$(cat-file commit $head | sed 's/tree //;q')
> 	merge_tree=tree=$(cat-file commit $merge | sed 's/tree //;q')
This wants to be:
	common_tree=$(cat-file commit $common | sed 's/tree //;q')
	head_tree=$(cat-file commit $head | sed 's/tree //;q')
	merge_tree=$(cat-file commit $merge_head | sed 's/tree //;q')
Show 10 quoted lines
> 	if [ "$common" == "$merge_head" ]; then
> 		echo "Already up-to-date. Yeeah!"
> 		exit 0
> 	fi
> 	if [ "$common" == "$head" ]; then
> 		echo "Updating from $head to $merge_head."
> 		echo "Destroying all noncommitted data!"
> 		echo "Kill me within 3 seconds.."
> 		sleep 3
> 		read-tree $merge_tree && checkout-cache -f -a
Don't we want to do an update-cache --refresh here?
Show 15 quoted lines
> 		echo $merge_head > .git/HEAD
> 		exit 0
> 	fi
> 	echo "Trying to merge $merge_head into $head"
> 	read-tree -m $common_tree $head_tree $merge_tree
> 	result_tree=$(write-tree) || exit 1
> 	result_commit=$(echo "Merge $merge_repo" | commit-tree $result_tree -p $head -p $merge_head)
> 	echo "Committed merge $result_commit"
> 	echo $result_commit > .git/HEAD
> 	read-tree $result_tree && checkout-cache -f -a
> 
> The above looks like it might work, but I also warn you: it's not only
> untested, but it's pretty fragile in that if something breaks, you are
> probably left with a mess. I _tried_ to do the right thing, but... So it
> obviously will need testing, tweaking and just general tender loving care.

Maybe Petr can improve the error handling, and incorporate it (or at least some of it) into git-pasky

> You shouldn't hit the "merge" case at all right now, you should hit the 
> "Updating from $head to $merge_head" thing.
Exactly what happened.  Thanks.
-- 
Russell King
Previous: Petr BaudisNext: Linus Torvalds
Message 39 of 60 in “Re-done kernel archive - real one?”
  1. Linus TorvaldsApr 16, 2005
  2. Russell KingApr 17, 2005
  3. Petr BaudisApr 17, 2005
  4. Linus TorvaldsApr 17, 2005
  5. Russell KingApr 17, 2005
  6. Linus TorvaldsApr 17, 2005
  7. Linus TorvaldsApr 17, 2005
  8. Russell KingApr 17, 2005
  9. Linus TorvaldsApr 17, 2005
  10. Russell KingApr 17, 2005
  11. Linus TorvaldsApr 17, 2005
  12. Russell KingApr 17, 2005
  13. Russell KingApr 18, 2005
  14. Petr BaudisApr 18, 2005
  15. Linus TorvaldsApr 18, 2005
  16. Petr BaudisApr 18, 2005
  17. Russell KingApr 17, 2005
  18. Linus TorvaldsApr 17, 2005
  19. David A. WheelerApr 17, 2005
  20. Petr BaudisApr 17, 2005
  21. Russell KingApr 17, 2005
  22. David A. WheelerApr 17, 2005
  23. Martin SchlemmerApr 18, 2005
  24. H. Peter AnvinApr 17, 2005
  25. Jochen RoemlingApr 17, 2005
  26. Randy.DunlapApr 17, 2005
  27. Petr BaudisApr 17, 2005
  28. David WoodhouseApr 17, 2005
  29. Linus TorvaldsApr 17, 2005
  30. Russell KingApr 17, 2005
  31. Russell KingApr 17, 2005
  32. Linus TorvaldsApr 17, 2005
  33. Russell KingApr 18, 2005
  34. Martin SchlemmerApr 18, 2005
  35. Petr BaudisApr 18, 2005
  36. Linus TorvaldsApr 18, 2005
  37. Linus TorvaldsApr 18, 2005
  38. Petr BaudisApr 18, 2005
  39. Russell KingApr 18, 2005
  40. Linus TorvaldsApr 18, 2005
  41. Petr BaudisApr 18, 2005
  42. Russell KingApr 18, 2005
  43. Petr BaudisApr 18, 2005
  44. Russell KingApr 19, 2005
  45. Linus TorvaldsApr 18, 2005
  46. Russell KingApr 18, 2005
  47. Linus TorvaldsApr 18, 2005
  48. Petr BaudisApr 18, 2005
  49. Greg KHApr 18, 2005
  50. Randy.DunlapApr 18, 2005
  51. Linus TorvaldsApr 18, 2005
  52. Greg KHApr 18, 2005
  53. Greg KHApr 18, 2005
  54. Linus TorvaldsApr 18, 2005
  55. Greg KHApr 18, 2005
  56. Linus TorvaldsApr 18, 2005
  57. H. Peter AnvinApr 17, 2005
  58. randy_dunlapApr 17, 2005
  59. David WoodhouseApr 17, 2005
  60. randy_dunlapApr 18, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.