{"thread":{"id":"13794","subject":"[WIP/RFC PATCH 0/2] Subtree checkout 1/2: introduce index prefix","startedAt":"2008-06-04T16:27:48Z","lastAt":"2008-06-04T16:27:48Z","messageCount":1,"participants":["Nguyễn Thái Ngọc Duy"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"78634","messageId":"20080604162748.GA23975@laptop","threadId":"13794","inReplyTo":null,"subject":"[WIP/RFC PATCH 0/2] Subtree checkout 1/2: introduce index prefix","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2008-06-04T16:27:48Z","receivedAt":"2008-06-04T16:27:48Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"This is the first part for subtree checkout: restrict write access to\nindex.  The second part would be restrict/adjust access to working\ndirectory so that it only needs part of full working directory to work\non. I would like to hear comments from people before heading to part 2.\n\nAs I understand, the hardest part is probably merging. My strategy is\nquite simple: allow merge as long as no conflicts are outside index\nprefix.\n\nWhile it is done as part of subtree checkout. I think it can be also \nused as a separate feature: working on a worktree where only a subtree\nis to be worked on. One example is gentoo-x86 repository (~80k files).\nI only work on a tree of dozen of files, but every time I do \"git\nstatus\", ~100k stats will be issued. With this, it can be reduced to\nabout 20 stats.\n\nSo back to the topic. Is the approach broken? Do I miss anything that\ncan write outside index prefix? What else needs more test case?\n\nThanks\n\nNguyễn Thái Ngọc Duy (2):\n  Introduce GIT_INDEX_PREFIX\n  Add tests for index prefix\n\n builtin-merge-recursive.c               |    4 +-\n builtin-read-tree.c                     |    5 +\n builtin-rev-parse.c                     |    5 +\n builtin-update-index.c                  |    3 +\n cache.h                                 |    2 +\n environment.c                           |   12 ++\n read-cache.c                            |   84 ++++++++++++-\n t/t2300-index-prefix.sh                 |  207 +++++++++++++++++++++++++++++\n t/t2301-index-prefix-merge-recursive.sh |  221 +++++++++++++++++++++++++++++++\n unpack-trees.c                          |    3 +\n unpack-trees.h                          |    3 +-\n 11 files changed, 545 insertions(+), 4 deletions(-)\n create mode 100755 t/t2300-index-prefix.sh\n create mode 100755 t/t2301-index-prefix-merge-recursive.sh\n"}]}