* git question: how do I get a specific git version into my working directory? @ 2015-04-18 10:33 Alan Mackenzie 2015-04-18 10:42 ` Andreas Schwab 2015-04-18 12:18 ` Steinar Bang 0 siblings, 2 replies; 17+ messages in thread From: Alan Mackenzie @ 2015-04-18 10:33 UTC (permalink / raw) To: emacs-devel Hello, Emacs. A simple question (I hope): How do I get a specific SW revision into my working directory. I want to do something like this: git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 . git checkout doesn't seem to be the thing. Neither does git revert. What is <command> here? -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 10:33 git question: how do I get a specific git version into my working directory? Alan Mackenzie @ 2015-04-18 10:42 ` Andreas Schwab 2015-04-18 12:18 ` Steinar Bang 1 sibling, 0 replies; 17+ messages in thread From: Andreas Schwab @ 2015-04-18 10:42 UTC (permalink / raw) To: Alan Mackenzie; +Cc: emacs-devel Alan Mackenzie <acm@muc.de> writes: > A simple question (I hope): How do I get a specific SW revision into my > working directory. I want to do something like this: > > git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > > . git checkout doesn't seem to be the thing. Why do you think so? Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 10:33 git question: how do I get a specific git version into my working directory? Alan Mackenzie 2015-04-18 10:42 ` Andreas Schwab @ 2015-04-18 12:18 ` Steinar Bang 2015-04-18 12:42 ` Eli Zaretskii ` (2 more replies) 1 sibling, 3 replies; 17+ messages in thread From: Steinar Bang @ 2015-04-18 12:18 UTC (permalink / raw) To: emacs-devel >>>>> Alan Mackenzie <acm@muc.de>: > Hello, Emacs. > A simple question (I hope): How do I get a specific SW revision into my > working directory. I want to do something like this: > git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > git checkout doesn't seem to be the thing. "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. What result do you get and what were you expecting? Do you have any uncommitted files it refuses to overwrite? If so, try git stash git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 git stash pop (don't stash if you have staged files, I think you have uncovered a bug there...) > Neither does git revert. What is <command> here? The command is "checkout". WARNING! Dangeous work-losing command ahead! There is also git reset --hard 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 which will overwrite anything uncommitted and set your workstate to the version described in 7e09ef09a479731d01b1ca46e94ddadd73ac98e3. If you just want to apply that commit, do: git cherry-pick 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 12:18 ` Steinar Bang @ 2015-04-18 12:42 ` Eli Zaretskii 2015-04-18 13:16 ` Alan Mackenzie 2015-04-18 12:48 ` Eric Abrahamsen 2015-04-18 13:09 ` Alan Mackenzie 2 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2015-04-18 12:42 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel > From: Steinar Bang <sb@dod.no> > Date: Sat, 18 Apr 2015 14:18:59 +0200 > > >>>>> Alan Mackenzie <acm@muc.de>: > > > Hello, Emacs. > > A simple question (I hope): How do I get a specific SW revision into my > > working directory. I want to do something like this: > > > git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > > > git checkout doesn't seem to be the thing. > > "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. It also creates a "detached HEAD", so Alan should IMO be aware of that, and return to the upstream head ASAP (or, better, do all of this in a separate branch to begin with). ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 12:42 ` Eli Zaretskii @ 2015-04-18 13:16 ` Alan Mackenzie 2015-04-18 13:20 ` Dmitry Gutov 2015-04-18 13:37 ` Eli Zaretskii 0 siblings, 2 replies; 17+ messages in thread From: Alan Mackenzie @ 2015-04-18 13:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel Hello, Eli. On Sat, Apr 18, 2015 at 03:42:42PM +0300, Eli Zaretskii wrote: > > From: Steinar Bang <sb@dod.no> > > Date: Sat, 18 Apr 2015 14:18:59 +0200 > > >>>>> Alan Mackenzie <acm@muc.de>: > > > Hello, Emacs. > > > A simple question (I hope): How do I get a specific SW revision into my > > > working directory. I want to do something like this: > > > git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > > > git checkout doesn't seem to be the thing. > > "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. > It also creates a "detached HEAD", so Alan should IMO be aware of > that, and return to the upstream head ASAP (or, better, do all of this > in a separate branch to begin with). I'm aware of it, now! Given that I'm not intending to do any VCS operation on this, other than "git checkout <revision number>", I should be all right, surely? I'm expecting (?hoping) that on switching back to the HEAD revision, the detached head (?all detached heads) will vanish. -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:16 ` Alan Mackenzie @ 2015-04-18 13:20 ` Dmitry Gutov 2015-04-18 13:37 ` Eli Zaretskii 1 sibling, 0 replies; 17+ messages in thread From: Dmitry Gutov @ 2015-04-18 13:20 UTC (permalink / raw) To: Alan Mackenzie, Eli Zaretskii; +Cc: emacs-devel On 04/18/2015 04:16 PM, Alan Mackenzie wrote: > I'm aware of it, now! Given that I'm not intending to do any VCS > operation on this, other than "git checkout <revision number>", I should > be all right, surely? I'm expecting (?hoping) that on switching back to > the HEAD revision, the detached head (?all detached heads) will vanish. You'll have to switch back to a specific branch. Switching to HEAD is a no-op. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:16 ` Alan Mackenzie 2015-04-18 13:20 ` Dmitry Gutov @ 2015-04-18 13:37 ` Eli Zaretskii 2015-04-18 14:07 ` Harald Hanche-Olsen 1 sibling, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2015-04-18 13:37 UTC (permalink / raw) To: Alan Mackenzie; +Cc: emacs-devel > Date: Sat, 18 Apr 2015 13:16:07 +0000 > From: Alan Mackenzie <acm@muc.de> > Cc: emacs-devel@gnu.org > > > > "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. > > > It also creates a "detached HEAD", so Alan should IMO be aware of > > that, and return to the upstream head ASAP (or, better, do all of this > > in a separate branch to begin with). > > I'm aware of it, now! Given that I'm not intending to do any VCS > operation on this, other than "git checkout <revision number>", I should > be all right, surely? I'm expecting (?hoping) that on switching back to > the HEAD revision, the detached head (?all detached heads) will vanish. If I were you, I'd do all this in a separate branch, just to be sure my 'master' branch had no chance whatsoever to be affected. Then you could simply delete that branch when no longer needed. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:37 ` Eli Zaretskii @ 2015-04-18 14:07 ` Harald Hanche-Olsen 2015-04-18 14:43 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: Harald Hanche-Olsen @ 2015-04-18 14:07 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Alan Mackenzie, emacs-devel Eli Zaretskii wrote: > If I were you, I'd do all this in a separate branch, just to be sure > my 'master' branch had no chance whatsoever to be affected. Then you > could simply delete that branch when no longer needed. Since the master branch is just a pointer into some specific commit, I don't think anything you do while in a headless commit can affect the master branch in any way. (Unless, of course, you run commands that specifically name the master branch in order to change it.) To get to the master branch just as it was, run “git checkout master”. If you made changes while in the headless commit, that will fail. In which case, either abandon the changes with “git checkout -f master”, or stash them first. – Harald ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 14:07 ` Harald Hanche-Olsen @ 2015-04-18 14:43 ` Eli Zaretskii 2015-04-18 17:09 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2015-04-18 14:43 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: acm, emacs-devel > Date: Sat, 18 Apr 2015 16:07:44 +0200 > From: Harald Hanche-Olsen <hanche@math.ntnu.no> > Cc: Alan Mackenzie <acm@muc.de>, emacs-devel@gnu.org > > Eli Zaretskii wrote: > > If I were you, I'd do all this in a separate branch, just to be sure > > my 'master' branch had no chance whatsoever to be affected. Then you > > could simply delete that branch when no longer needed. > > Since the master branch is just a pointer into some specific commit, I > don't think anything you do while in a headless commit can affect the > master branch in any way. (Unless, of course, you run commands that > specifically name the master branch in order to change it.) > > To get to the master branch just as it was, run “git checkout master”. > > If you made changes while in the headless commit, that will fail. In > which case, either abandon the changes with “git checkout -f master”, or > stash them first. Yes, I know all that. But I'd still do all that on a separate branch, since 'master' is not supposed to be used for such stuff, it's supposed to track upstream as close as possible. Better be safe than sorry. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 14:43 ` Eli Zaretskii @ 2015-04-18 17:09 ` Stefan Monnier 2015-04-18 17:37 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-04-18 17:09 UTC (permalink / raw) To: Eli Zaretskii; +Cc: acm, Harald Hanche-Olsen, emacs-devel > Yes, I know all that. But I'd still do all that on a separate branch, > since 'master' is not supposed to be used for such stuff, it's > supposed to track upstream as close as possible. I think Harald's point is that after "git checkout e56ab7" you're simply not in "master" any more. At least, not more than you're in any other branch. Instead, you're in a kind of transient nameless branch. Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 17:09 ` Stefan Monnier @ 2015-04-18 17:37 ` Eli Zaretskii 2015-04-18 17:44 ` Harald Hanche-Olsen 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2015-04-18 17:37 UTC (permalink / raw) To: Stefan Monnier; +Cc: acm, hanche, emacs-devel > From: Stefan Monnier <monnier@IRO.UMontreal.CA> > Date: Sat, 18 Apr 2015 13:09:01 -0400 > Cc: acm@muc.de, Harald Hanche-Olsen <hanche@math.ntnu.no>, emacs-devel@gnu.org > > > Yes, I know all that. But I'd still do all that on a separate branch, > > since 'master' is not supposed to be used for such stuff, it's > > supposed to track upstream as close as possible. > > I think Harald's point is that after "git checkout e56ab7" you're simply > not in "master" any more. At least, not more than you're in any > other branch. Instead, you're in a kind of transient nameless branch. And my point is: why have a nameless branch, if you can have a named one? ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 17:37 ` Eli Zaretskii @ 2015-04-18 17:44 ` Harald Hanche-Olsen 0 siblings, 0 replies; 17+ messages in thread From: Harald Hanche-Olsen @ 2015-04-18 17:44 UTC (permalink / raw) To: Eli Zaretskii; +Cc: acm, Stefan Monnier, emacs-devel Eli Zaretskii wrote: >> From: Stefan Monnier<monnier@IRO.UMontreal.CA> >> Date: Sat, 18 Apr 2015 13:09:01 -0400 >> Cc: acm@muc.de, Harald Hanche-Olsen<hanche@math.ntnu.no>, emacs-devel@gnu.org >> >>> Yes, I know all that. But I'd still do all that on a separate branch, >>> since 'master' is not supposed to be used for such stuff, it's >>> supposed to track upstream as close as possible. >> I think Harald's point is that after "git checkout e56ab7" you're simply >> not in "master" any more. At least, not more than you're in any >> other branch. That's my point, yes. >> Instead, you're in a kind of transient nameless branch. Well, not even that. Branches by definition have names: A branch is a name which (a) points to a commit, (b) moves to a newly created commit when you check in code, and optionally (c) has remote-tracking behaviour. > And my point is: why have a nameless branch, if you can have a named > one? That's a good point, but the reason for it is not any danger of messing up the master branch. Rather, it is the danger of messing up any code you write while in the detached state. – Harald ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 12:18 ` Steinar Bang 2015-04-18 12:42 ` Eli Zaretskii @ 2015-04-18 12:48 ` Eric Abrahamsen 2015-04-18 13:09 ` Alan Mackenzie 2 siblings, 0 replies; 17+ messages in thread From: Eric Abrahamsen @ 2015-04-18 12:48 UTC (permalink / raw) To: emacs-devel Steinar Bang <sb@dod.no> writes: >>>>>> Alan Mackenzie <acm@muc.de>: > >> Hello, Emacs. >> A simple question (I hope): How do I get a specific SW revision into my >> working directory. I want to do something like this: > >> git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > >> git checkout doesn't seem to be the thing. > > "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. > > What result do you get and what were you expecting? Do you have any > uncommitted files it refuses to overwrite? If so, try > git stash > git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > git stash pop > > (don't stash if you have staged files, I think you have uncovered a bug > there...) > >> Neither does git revert. What is <command> here? > > The command is "checkout". > > WARNING! Dangeous work-losing command ahead! > There is also > git reset --hard 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > which will overwrite anything uncommitted and set your workstate to the > version described in 7e09ef09a479731d01b1ca46e94ddadd73ac98e3. > > If you just want to apply that commit, do: > git cherry-pick 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 I think the recommended approach is to create a branch pointing at a specific commit. So: git checkout -b test_branch 7e09ef09 Otherwise you're in a "detached head" state, which can have odd results. The branch method is at least a little more stable. Eric ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 12:18 ` Steinar Bang 2015-04-18 12:42 ` Eli Zaretskii 2015-04-18 12:48 ` Eric Abrahamsen @ 2015-04-18 13:09 ` Alan Mackenzie 2015-04-18 13:18 ` Dmitry Gutov ` (2 more replies) 2 siblings, 3 replies; 17+ messages in thread From: Alan Mackenzie @ 2015-04-18 13:09 UTC (permalink / raw) To: emacs-devel Hello, Steinar. On Sat, Apr 18, 2015 at 02:18:59PM +0200, Steinar Bang wrote: > >>>>> Alan Mackenzie <acm@muc.de>: > > Hello, Emacs. > > A simple question (I hope): How do I get a specific SW revision into my > > working directory. I want to do something like this: > > git <command> 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > > git checkout doesn't seem to be the thing. > "git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3" should work. > What result do you get and what were you expecting? Do you have any > uncommitted files it refuses to overwrite? If so, try > git stash > git checkout 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > git stash pop > (don't stash if you have staged files, I think you have uncovered a bug > there...) No, I hadn't tried the command. I have now, and it "seems to work". > > Neither does git revert. What is <command> here? > The command is "checkout". Thanks! > WARNING! Dangeous work-losing command ahead! > There is also > git reset --hard 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 > which will overwrite anything uncommitted and set your workstate to the > version described in 7e09ef09a479731d01b1ca46e94ddadd73ac98e3. > If you just want to apply that commit, do: > git cherry-pick 7e09ef09a479731d01b1ca46e94ddadd73ac98e3 I am doing a bisect: a bisect where I only want revisions taken into account when specific files have been modified. -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:09 ` Alan Mackenzie @ 2015-04-18 13:18 ` Dmitry Gutov 2015-04-18 13:57 ` Steinar Bang 2015-04-18 14:03 ` Andreas Schwab 2 siblings, 0 replies; 17+ messages in thread From: Dmitry Gutov @ 2015-04-18 13:18 UTC (permalink / raw) To: Alan Mackenzie, emacs-devel On 04/18/2015 04:09 PM, Alan Mackenzie wrote: > I am doing a bisect: a bisect where I only want revisions taken into > account when specific files have been modified. Have you tried passing those file paths after "git bisect start --"? http://stackoverflow.com/questions/3179498/how-can-i-cut-down-a-git-bisect-run-using-file-paths ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:09 ` Alan Mackenzie 2015-04-18 13:18 ` Dmitry Gutov @ 2015-04-18 13:57 ` Steinar Bang 2015-04-18 14:03 ` Andreas Schwab 2 siblings, 0 replies; 17+ messages in thread From: Steinar Bang @ 2015-04-18 13:57 UTC (permalink / raw) To: emacs-devel >>>>> Alan Mackenzie <acm@muc.de>: > I am doing a bisect: a bisect where I only want revisions taken into > account when specific files have been modified. Hm... when I do bisect I just to "git bisect" and feed it the two sha1 hashes it should bisect between, and it has so far done its magic to my satisfaction (ie. if it was caused by a commit, I have successfully identified a particular commit where the issue starts). After that I usually branch off from the commit before the offending commit and stay there until things are resolved (unless I'm able to resolve it myself). Or I branch off master and revert the offending commit until things are resolved, ie. like so git checkout master git checkout -b sb-master git revert sha1-of-offending-commit (that's what I did with gnus, when cram-md5 auth disappeared from nnimap with SSL/TLS...) ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: git question: how do I get a specific git version into my working directory? 2015-04-18 13:09 ` Alan Mackenzie 2015-04-18 13:18 ` Dmitry Gutov 2015-04-18 13:57 ` Steinar Bang @ 2015-04-18 14:03 ` Andreas Schwab 2 siblings, 0 replies; 17+ messages in thread From: Andreas Schwab @ 2015-04-18 14:03 UTC (permalink / raw) To: Alan Mackenzie; +Cc: emacs-devel Alan Mackenzie <acm@muc.de> writes: > I am doing a bisect: a bisect where I only want revisions taken into > account when specific files have been modified. A typical XY problem. http://www.perlmonks.org/?node=542341 Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2015-04-18 17:44 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-18 10:33 git question: how do I get a specific git version into my working directory? Alan Mackenzie 2015-04-18 10:42 ` Andreas Schwab 2015-04-18 12:18 ` Steinar Bang 2015-04-18 12:42 ` Eli Zaretskii 2015-04-18 13:16 ` Alan Mackenzie 2015-04-18 13:20 ` Dmitry Gutov 2015-04-18 13:37 ` Eli Zaretskii 2015-04-18 14:07 ` Harald Hanche-Olsen 2015-04-18 14:43 ` Eli Zaretskii 2015-04-18 17:09 ` Stefan Monnier 2015-04-18 17:37 ` Eli Zaretskii 2015-04-18 17:44 ` Harald Hanche-Olsen 2015-04-18 12:48 ` Eric Abrahamsen 2015-04-18 13:09 ` Alan Mackenzie 2015-04-18 13:18 ` Dmitry Gutov 2015-04-18 13:57 ` Steinar Bang 2015-04-18 14:03 ` Andreas Schwab
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).