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

Re: [RFC] Build in clone

From
Johan Herland <johan@herland.net>
Date
Feb 26, 2008, 12:58 UTC
Message-ID
<200802261358.33357.johan@herland.net>
In-Reply-To
<200802261319.41862.johan@herland.net>
On Tuesday 26 February 2008, Johan Herland wrote:
Show 53 quoted lines
> [1] Verbose output from t5700-clone-reference.sh:
> 
> $ ./t5700-clone-reference.sh --verbose
> * expecting success: test_create_repo A && cd A &&
> echo first > file1 &&
> git add file1 &&
> git commit -m initial
> Created initial commit 8c40535: initial
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 file1
> *   ok 1: preparing first repository
> 
> * expecting success: git clone A B && cd B &&
> echo second > file2 &&
> git add file2 &&
> git commit -m addition &&
> git repack -a -d &&
> git prune
> Initialize B/.git
> Initialized empty Git repository in B/.git/
> Okay
> Get for /home/johanh/git-test/git/t/trash/A/.git
> 0x714f50
> HEAD
> refs/heads/master
> work tree now /home/johanh/git-test/git/t/trash/B
> Created commit 4f5d964: addition
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 file2
> Counting objects: 6, done.
> Compressing objects: 100% (3/3), done.
> Writing objects: 100% (6/6), done.
> Total 6 (delta 0), reused 0 (delta 0)
> *   ok 2: preparing second repository
> 
> * expecting success: git clone -l -s --reference B A C
> Initialize C/.git
> Initialized empty Git repository in C/.git/
> Okay
> Wrote /home/johanh/git-test/git/t/trash/B/.git/objects
>  to C/.git/objects/info/alternates
> 4f5d96490c0371a2814efb3203ed699ef4814fda -> C/.git/refs/reference-tmp/4f5d96490c0371a2814efb3203ed699ef4814fda
> error: refs/remotes/origin/HEAD does not point to a valid object!
> error: Z;n�+ does not point to a valid object!
> error: Z;n�+ does not point to a valid object!
> error: �p does not point to a valid object!
> error: Z;n�+ does not point to a valid object!
> error: Z;n�+ does not point to a valid object!
> error: Y;n�+ does not point to a valid object!
> error: q does not point to a valid object!
> ./test-lib.sh: line 193: 32376 Segmentation fault      git clone -l -s --reference B A C
> * FAIL 3: cloning with reference (-l -s)
>         git clone -l -s --reference B A C
Running this test with GDB, I get the following backtrace:

#0 0x0000000000474b87 in is_null_sha1 (sha1=0x100000008 <Address 0x100000008 out of bounds>) at cache.h:464 #1 0x0000000000474ad3 in do_one_ref (base=0x4dc8ff "refs/", fn=0x419471 <setup_tmp_ref>, trim=0, cb_data=0x7498d0, entry=0xffffffff) at refs.c:474 #2 0x0000000000474e28 in do_for_each_ref (base=0x4dc8ff "refs/", fn=0x419471 <setup_tmp_ref>, trim=0, cb_data=0x7498d0) at refs.c:558 #3 0x0000000000474ecd in for_each_ref (fn=0x419471 <setup_tmp_ref>, cb_data=0x7498d0) at refs.c:580 #4 0x0000000000419706 in setup_reference (repo=0x745070 "C/.git") at builtin-clone.c:211 #5 0x0000000000419fce in cmd_clone (argc=2, argv=0x7fff7a282fa0, prefix=0x0) at builtin-clone.c:422 #6 0x0000000000404ba3 in run_command (p=0x6ff710, argc=7, argv=0x7fff7a282fa0) at git.c:248 #7 0x0000000000404d55 in handle_internal_command (argc=7, argv=0x7fff7a282fa0) at git.c:378 #8 0x0000000000404ebe in main (argc=7, argv=0x7fff7a282fa0) at git.c:442

Seems the "loose" ref_list in do_for_each_ref() becomes corrupted.
Will investigate more later.
...Johan
-- 
Johan Herland, <johan@herland.net>
www.herland.net
Previous: Johan HerlandNext: Johan Herland
Message 5 of 47 in “[RFC] Build in clone”
  1. Daniel BarkalowFeb 25, 2008
  2. Johan HerlandFeb 26, 2008
  3. Johannes SchindelinFeb 26, 2008
  4. Johan HerlandFeb 26, 2008
  5. Johan HerlandFeb 26, 2008
  6. Johan HerlandFeb 26, 2008
  7. Fix premature free of ref_lists while writing temporary refs to fileJohan Herland, Feb 26, 2008
  8. Johannes SchindelinFeb 26, 2008
  9. Johan HerlandFeb 26, 2008
  10. Daniel BarkalowFeb 26, 2008
  11. Johan HerlandFeb 26, 2008
  12. Fix premature call to git_config() causing t1020-subdirectory to failJohan Herland, Feb 26, 2008
  13. Johannes SchindelinFeb 26, 2008
  14. Daniel BarkalowFeb 26, 2008
  15. Johannes SchindelinFeb 26, 2008
  16. Daniel BarkalowFeb 26, 2008
  17. Junio C HamanoFeb 27, 2008
  18. Daniel BarkalowFeb 27, 2008
  19. Junio C HamanoFeb 27, 2008
  20. Daniel BarkalowFeb 27, 2008
  21. Junio C HamanoFeb 27, 2008
  22. Daniel BarkalowFeb 27, 2008
  23. Daniel BarkalowFeb 26, 2008
  24. Kristian HøgsbergFeb 26, 2008
  25. builtin-clone: create remotes/origin/HEAD symref, if guessedJohannes Schindelin, Mar 2, 2008
  26. builtin-clone: create remotes/origin/HEAD symref, if guessedJohannes Schindelin, Mar 2, 2008
  27. builtin clone: support bundlesJohannes Schindelin, Mar 2, 2008
  28. Daniel BarkalowMar 2, 2008
  29. Santi BéjarMar 3, 2008
  30. Daniel BarkalowMar 2, 2008
  31. Johannes SchindelinMar 2, 2008
  32. Junio C HamanoMar 2, 2008
  33. Junio C HamanoMar 2, 2008
  34. Add test for cloning with "--reference" repo being a subset of source repoJohan Herland, Mar 3, 2008
  35. Daniel BarkalowMar 3, 2008
  36. Daniel BarkalowMar 3, 2008
  37. Johan HerlandMar 4, 2008
  38. 1/2 Add test illustrating issues with sha1_file_name() and switching reposJohan Herland, Mar 4, 2008
  39. 2/2 Overly simplistic fix for issue with sha1_file_name() and switching reposJohan Herland, Mar 4, 2008
  40. Daniel BarkalowMar 4, 2008
  41. Daniel BarkalowMar 5, 2008
  42. Johan HerlandMar 5, 2008
  43. Kristian HøgsbergMar 3, 2008
  44. Pierre HabouzitMar 3, 2008
  45. Johannes SchindelinMar 3, 2008
  46. Johannes SchindelinMar 3, 2008
  47. Johan HerlandMar 3, 2008

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.