Download raw body.
strange behaviour when unstaging missing file
1. Make a new file 2. got stage (the file) 3. rm 4. got unstage (the file) I've seen the above four steps do three different things: a) segfault b) say got: mkstemps: (path to directory containing file)/got-merge-blob-deriv-y1qCp2Ggtr: No such file or directory c) say got: open: (path to file): No such file or directory I haven't been able to reproduce the segfault, but here's a script which reproduces (b). mkdir bug; cd bug gotadmin init r.git mkdir init; touch init/f got im -r r.git -m init init got co r.git; cd r mkdir d echo hello > d/y got add d/y got stage d/y rm -r d got unstage d/y As for getting a segfault, I seem to no longer have the repo which did that, but here's a backtrace from egdb from before I lost it: #0 0x00000b92543c036c in digest_to_str (digest=0x0, len=20, buf=0x77e6f4749e10 "\b") at /home/falsifian/co/got/got/../lib/hash.c:117 #1 0x00000b92543c02df in got_sha1_digest_to_str (digest=0x0, buf=0x77e6f4749e10 "\b", size=41) at /home/falsifian/co/got/got/../lib/hash.c:130 #2 0x00000b92543c0176 in got_object_id_hex (id=0x0, buf=0x77e6f4749e10 "\b", len=41) at /home/falsifian/co/got/got/../lib/hash.c:158 #3 0x00000b9254394c82 in got_error_no_obj (id=0x0) at /home/falsifian/co/got/got/../lib/error.c:377 #4 0x00000b92543bb2d9 in got_repo_search_packidx (packidx=0x77e6f4749fa8, idx=0x77e6f4749fa4, repo=0xb9456969450, id=0x0) at /home/falsifian/co/got/got/../lib/repository.c:1406 #5 0x00000b9254408b3f in open_blob (blob=0x77e6f474a210, repo=0xb9456969450, id=0x0, blocksize=8192, outfd=72) at /home/falsifian/co/got/got/../lib/object_open_privsep.c:946 #6 0x00000b92544089e6 in got_object_open_as_blob (blob=0x77e6f474a210, repo=0xb9456969450, id=0x0, blocksize=8192, outfd=72) at /home/falsifian/co/got/got/../lib/object_open_privsep.c:1035 #7 0x00000b92543ce5b9 in unstage_path (arg=0x77e6f474a698, status=33 '!', staged_status=65 'A', relpath=0xb95019db7d0 "d/x", blob_id=0x77e6f474a2f0, staged_blob_id=0x0, commit_id=0x77e6f474a2d8, dirfd=-1, de_name=0x0) at /home/falsifian/co/got/got/../lib/worktree.c:9665 #8 0x00000b92543d7364 in status_old (arg=0x77e6f474a588, ie=0xb94569645a0, parent_path=0xb95019a8f60 "d") at /home/falsifian/co/got/got/../lib/worktree.c:3711 #9 0x00000b9254398316 in diff_fileindex_dir (fileindex=0xb95019a8b80, ie=0x77e6f474a490, dirlist=0x77e6f474a480, dirfd=70, rootpath=0xb95019cc5e0 "/home/falsifian/tmp/d/r", path=0xb95019a8f60 "d", repo=0xb9456969450, cb=0x77e6f474a5e0, cb_arg=0x77e6f474a588) at /home/falsifian/co/got/got/../lib/fileindex.c:1163 #10 0x00000b9254397cdf in got_fileindex_diff_dir (fileindex=0xb95019a8b80, fd=69, rootpath=0xb95019cc5e0 "/home/falsifian/tmp/d/r", path=0xb95019a8f60 "d", repo=0xb9456969450, cb=0x77e6f474a5e0, cb_arg=0x77e6f474a588) at /home/falsifian/co/got/got/../lib/fileindex.c:1225 #11 0x00000b92543c39b0 in worktree_status (worktree=0xb95019abf00, path=0xb95019a8f60 "d", fileindex=0xb95019a8b80, repo=0xb9456969450, status_cb=0xb92543ce1b0 <unstage_path>, status_arg=0x77e6f474a698, cancel_cb=0x0, cancel_arg=0x0, no_ignores=1, report_unchanged=0) at /home/falsifian/co/got/got/../lib/worktree.c:4210 #12 0x00000b92543ce0d3 in got_worktree_unstage (worktree=0xb95019abf00, paths=0x77e6f474a7c8, progress_cb=0xb925437be50 <update_progress>, progress_arg=0x77e6f474a7a0, patch_cb=0x0, patch_arg=0x77e6f474a780, repo=0xb9456969450) at /home/falsifian/co/got/got/../lib/worktree.c:9779 #13 0x00000b9254376ddf in cmd_unstage (argc=1, argv=0x77e6f474a8d8) at /home/falsifian/co/got/got/got.c:13911 #14 0x00000b9254362cd7 in main (argc=2, argv=0x77e6f474a8d0) at /home/falsifian/co/got/got/got.c:262 -- James
strange behaviour when unstaging missing file