{"thread":{"id":"50896","subject":"[GSoC] [RFC] stashing unmerged index entries","startedAt":"2019-04-09T08:16:23Z","lastAt":"2019-04-09T11:01:48Z","messageCount":2,"participants":["Kapil Jain","Duy Nguyen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"373467","messageId":"CAMknYEMQ6K7j2M1CSv9uCF8aDQK6+PmTJi-XgFNy+McE9f7OsQ@mail.gmail.com","threadId":"50896","inReplyTo":null,"subject":"[GSoC] [RFC] stashing unmerged index entries","fromName":"Kapil Jain","fromEmail":"jkapil.cs@gmail.com","sentAt":"2019-04-09T08:16:10Z","receivedAt":"2019-04-09T08:16:23Z","isPatch":false,"sender":{"key":"jkapil.cs@gmail.com","avatar":null},"body":"Reference: https://git.github.io/SoC-2019-Ideas/#teach-git-stash-to-handle-unmerged-index-entries\n\n\"When the index is unmerged, git stash refuses to do anything. That is\nunnecessary, though, as it could easily craft e.g. an octopus merge of\nthe various stages. A subsequent git stash apply can detect that\noctopus and re-generate the unmerged index.\"\n\naccording to it we take the unmerged entries (caused by conflicted\nmerge) in index from all stages, and do an octopus merge. how does\nthis solve the problem, i mean where do those entries go after octopus\nmerge ? a conflicted merge is still there, do we store the merge\nseparately ?\n"},{"id":"373480","messageId":"CACsJy8AwS0De_xjkTpcU=Crpgen3+OfQRh=CPwZAc6YxCUUc=g@mail.gmail.com","threadId":"50896","inReplyTo":"CAMknYEMQ6K7j2M1CSv9uCF8aDQK6+PmTJi-XgFNy+McE9f7OsQ@mail.gmail.com","subject":"Re: [GSoC] [RFC] stashing unmerged index entries","fromName":"Duy Nguyen","fromEmail":"pclouds@gmail.com","sentAt":"2019-04-09T11:01:19Z","receivedAt":"2019-04-09T11:01:48Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Tue, Apr 9, 2019 at 3:16 PM Kapil Jain <jkapil.cs@gmail.com> wrote:\n>\n> Reference: https://git.github.io/SoC-2019-Ideas/#teach-git-stash-to-handle-unmerged-index-entries\n>\n> \"When the index is unmerged, git stash refuses to do anything. That is\n> unnecessary, though, as it could easily craft e.g. an octopus merge of\n> the various stages. A subsequent git stash apply can detect that\n> octopus and re-generate the unmerged index.\"\n>\n> according to it we take the unmerged entries (caused by conflicted\n> merge) in index from all stages, and do an octopus merge. how does\n> this solve the problem, i mean where do those entries go after octopus\n> merge ?\n\nI'm not even into git-stash, but it does sound like it solves the\nproblem, which is _restoring_ the conflict after you unstash. Since\nyou have all the unmerged entries in the merge (which is stored in\nsome stash ref), you can safely destroy all conflicts in worktree and\nput it back to a clean state. When people want to apply the stash, you\nre-generate the unmerged index from the octopus merge.\n\n> a conflicted merge is still there,\n\nyes, but because you can restore it later now, you can remove the\nconflict safely. That's what git-stash is for.\n\n> do we store the merge separately ?\n-- \nDuy\n"}]}