* Stash @ 2015-04-05 17:42 Richard Stallman 2015-04-05 18:31 ` Stash Steinar Bang ` (2 more replies) 0 siblings, 3 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-05 17:42 UTC (permalink / raw) To: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] When people told me that my changes in Lisp files did not get pushed, I did git pull again, and it told me there was a problem lisp/ChangeLog again, but there was no conflict in it. Then I did git commit again. Then I did git push again, and got this. To rms@git.sv.gnu.org:/srv/git/emacs.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'rms@git.sv.gnu.org:/srv/git/emacs.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details. I have no idea what that means. > My guess would be that these are still stashed, and need to be > unstashed and then pushed. How can I tell? And if those changes are stashed, why did they show up in git diff? Anyway, I did 'git stash pop' to see if they were stashed. That seems to have changed dozens of files. 'git diff origin/master' gave me 5000 lines. So I tried doing 'git stash' again, and it gave me an error, fatal: git-write-tree: error building trees Cannot save the current index state I don't have all the output. I had run git in a shell buffer a few times, and it causes a lot of trouble about the terminal. So I started running it in an ordinary terminal. Fortunately it seems that all my changes did make it into Savannah. So it is just a matter of how to get a clean repository. Is there any way I can fix this other than creating a new repository? I should not do that here; it would cost my host too much money, I fear. How unreliable and error-prone Git is. I will recommend that people choose Bzr or CVS. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 17:42 Stash Richard Stallman @ 2015-04-05 18:31 ` Steinar Bang 2015-04-05 18:38 ` Stash Eli Zaretskii ` (3 more replies) 2015-04-05 18:40 ` Stash Paul Eggert 2015-04-05 19:41 ` Stash Harald Hanche-Olsen 2 siblings, 4 replies; 54+ messages in thread From: Steinar Bang @ 2015-04-05 18:31 UTC (permalink / raw) To: emacs-devel >>>>> Richard Stallman <rms@gnu.org>: > When people told me that my changes in Lisp files did not get pushed, > I did git pull again, and it told me there was a problem > lisp/ChangeLog again, but there was no conflict in it. > Then I did git commit again. Hm... that may not have been enough? Did you stage lisp/ChangeLog before before doing the commit? Ie. git add lisp/ChangeLog git commit If you didn't and this was marked as a merge, the commit probably didn't happen. > Then I did git push again, and got this. > To rms@git.sv.gnu.org:/srv/git/emacs.git > ! [rejected] master -> master (non-fast-forward) > error: failed to push some refs to 'rms@git.sv.gnu.org:/srv/git/emacs.git' > To prevent you from losing history, non-fast-forward updates were rejected > Merge the remote changes (e.g. 'git pull') before pushing again. See the > 'Note about fast-forwards' section of 'git push --help' for details. > I have no idea what that means. It means someone else pushed since your last pull. Try doing a new pull, followed by a push. git pull git push >> My guess would be that these are still stashed, and need to be >> unstashed and then pushed. > How can I tell? > And if those changes are stashed, why did they show up in git diff? Don't have enough context to say anything here, sorry. > Anyway, I did 'git stash pop' to see if they were stashed. > That seems to have changed dozens of files. > 'git diff origin/master' gave me 5000 lines. > So I tried doing 'git stash' again, and it gave me an error, > fatal: git-write-tree: error building trees > Cannot save the current index state Hm... that's a new one. > I don't have all the output. I had run git in a shell buffer a few > times, and it causes a lot of trouble about the terminal. So I started > running it in an ordinary terminal. > Fortunately it seems that all my changes did make it into Savannah. > So it is just a matter of how to get a clean repository. > Is there any way I can fix this other than creating a new repository? > I should not do that here; it would cost my host too much money, I > fear. If you are sure that all of your changes are on savannah, then git reset --hard HEAD should fix things. Note that if you actually have local changes this is a command that will lose those changes. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:31 ` Stash Steinar Bang @ 2015-04-05 18:38 ` Eli Zaretskii 2015-04-06 5:50 ` Stash Richard Stallman ` (2 subsequent siblings) 3 siblings, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-05 18:38 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel > From: Steinar Bang <sb@dod.no> > Date: Sun, 05 Apr 2015 20:31:07 +0200 > > If you are sure that all of your changes are on savannah, then > git reset --hard HEAD > should fix things. > > Note that if you actually have local changes this is a command that will > lose those changes. They could be moved aside, as a precaution. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:31 ` Stash Steinar Bang 2015-04-05 18:38 ` Stash Eli Zaretskii @ 2015-04-06 5:50 ` Richard Stallman 2015-04-06 6:37 ` Stash Steinar Bang 2015-04-06 7:35 ` Stash Eli Zaretskii 2015-04-06 5:50 ` Stash Richard Stallman 2015-04-06 5:51 ` Stash Richard Stallman 3 siblings, 2 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-06 5:50 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Hm... that may not have been enough? Did you stage lisp/ChangeLog before > before doing the commit? Ie. I do not know the term "stage". > git add lisp/ChangeLog > git commit I think I did this in one of the merges. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 5:50 ` Stash Richard Stallman @ 2015-04-06 6:37 ` Steinar Bang 2015-04-06 7:35 ` Stash Eli Zaretskii 1 sibling, 0 replies; 54+ messages in thread From: Steinar Bang @ 2015-04-06 6:37 UTC (permalink / raw) To: emacs-devel >>>>> Richard Stallman <rms@gnu.org>: >> Hm... that may not have been enough? Did you stage lisp/ChangeLog before >> before doing the commit? Ie. > I do not know the term "stage". It's a magit term for files that are to be part of the commit. "Staging" and "unstaging" always made more sense to me than adding a file that's already under version control. I don't know if "staging" and "unstaging" appear anywhere in the official git documentation. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 5:50 ` Stash Richard Stallman 2015-04-06 6:37 ` Stash Steinar Bang @ 2015-04-06 7:35 ` Eli Zaretskii 2015-04-06 7:57 ` Stash Eli Zaretskii 2015-04-07 19:31 ` Stash Stephen J. Turnbull 1 sibling, 2 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 7:35 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Mon, 06 Apr 2015 01:50:37 -0400 > From: Richard Stallman <rms@gnu.org> > Cc: emacs-devel@gnu.org > > > Hm... that may not have been enough? Did you stage lisp/ChangeLog before > > before doing the commit? Ie. > > I do not know the term "stage". Git requires to use 2 commands to commit a change in a file: git add FILE git commit FILE For files already registered with Git, you can use a single command git commit -a FILE to do that in one go. ("git add" is still required to register new files.) ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 7:35 ` Stash Eli Zaretskii @ 2015-04-06 7:57 ` Eli Zaretskii 2015-04-07 19:31 ` Stash Stephen J. Turnbull 1 sibling, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 7:57 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Mon, 06 Apr 2015 10:35:06 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: sb@dod.no, emacs-devel@gnu.org > > > Date: Mon, 06 Apr 2015 01:50:37 -0400 > > From: Richard Stallman <rms@gnu.org> > > Cc: emacs-devel@gnu.org > > > > > Hm... that may not have been enough? Did you stage lisp/ChangeLog before > > > before doing the commit? Ie. > > > > I do not know the term "stage". > > Git requires to use 2 commands to commit a change in a file: > > git add FILE > git commit FILE I failed to say that the 1st of these two is called "staging", since it prepares the file for being committed. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 7:35 ` Stash Eli Zaretskii 2015-04-06 7:57 ` Stash Eli Zaretskii @ 2015-04-07 19:31 ` Stephen J. Turnbull 2015-04-08 5:28 ` Stash Eli Zaretskii 1 sibling, 1 reply; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-07 19:31 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, rms, emacs-devel Eli Zaretskii writes: > Git requires to use 2 commands to commit a change in a file: > > git add FILE > git commit FILE > > For files already registered with Git, you can use a single command > > git commit -a FILE You don't need the "-a", just "git commit FILE" is enough. ("git commit -a" (with or without file names) will stage all registered files that have been modified or deleted to the pending commit.) If you use "git add" to "stage" a file for committing, then you can further abbreviate to "git commit". ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 19:31 ` Stash Stephen J. Turnbull @ 2015-04-08 5:28 ` Eli Zaretskii 0 siblings, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-08 5:28 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: sb, rms, emacs-devel > From: "Stephen J. Turnbull" <stephen@xemacs.org> > Cc: rms@gnu.org, > sb@dod.no, > emacs-devel@gnu.org > Date: Wed, 08 Apr 2015 04:31:36 +0900 > > Eli Zaretskii writes: > > > Git requires to use 2 commands to commit a change in a file: > > > > git add FILE > > git commit FILE > > > > For files already registered with Git, you can use a single command > > > > git commit -a FILE > > You don't need the "-a", just "git commit FILE" is enough. Right, "git commit -a FILE" emits an error message. So much for consistency... ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:31 ` Stash Steinar Bang 2015-04-05 18:38 ` Stash Eli Zaretskii 2015-04-06 5:50 ` Stash Richard Stallman @ 2015-04-06 5:50 ` Richard Stallman 2015-04-06 6:50 ` Stash Steinar Bang 2015-04-06 5:51 ` Stash Richard Stallman 3 siblings, 1 reply; 54+ messages in thread From: Richard Stallman @ 2015-04-06 5:50 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I did > git reset --hard HEAD since I had installed all my changes. Then I did 'git pull' and it reported a lot of things. Then I did 'git status' which produced this: # On branch master # Your branch is ahead of 'origin/master' by 2 commits. # nothing to commit (working directory clean) What does that second line "ahead of" mean? Is it a problem? -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 5:50 ` Stash Richard Stallman @ 2015-04-06 6:50 ` Steinar Bang 2015-04-06 6:55 ` Stash Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 54+ messages in thread From: Steinar Bang @ 2015-04-06 6:50 UTC (permalink / raw) To: emacs-devel >>>>> Richard Stallman <rms@gnu.org>: > I did >> git reset --hard HEAD > since I had installed all my changes. > Then I did 'git pull' and it reported a lot of things. > Then I did 'git status' which produced this: > # On branch master > # Your branch is ahead of 'origin/master' by 2 commits. > # > nothing to commit (working directory clean) > What does that second line "ahead of" mean? It means that the branch master has two commits that aren't in origin/master (which is your local copy of what's on savannah). > Is it a problem? I don't think so. I think they are probably artifacts of two of the pull commands done, so I think you probably won't need them. The following is a way to remove the two commits from master in your git repository, but at the same time put them in a local branch, where they can be examined later: git checkout -b two-unexpected-commits-on-master git checkout master git fetch git reset --hard origin/master If you decide ahead of time that you don't care about the two commits, drop the first command ("git checkout -b two-unexpected-commits-on-master"). Note that the "git reset --hard origin/master" is a particularily dangerous command, because it will make the branch you're currently on a copy of the branch in the argument, overwriting any commits you may have had (I've trashed my feature branch in this way at least once, this is why I always checkout the branch I'm going to run the command on, even if I'm already there).p However, in this case "git reset --hard origin/master" does what you want: make master a priestine copy of what's currently on savannah. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 6:50 ` Stash Steinar Bang @ 2015-04-06 6:55 ` Eli Zaretskii 2015-04-06 11:25 ` Stash Mathias Megyei 2015-04-06 6:55 ` Stash Eli Zaretskii 2015-04-06 14:53 ` Stash Steinar Bang 2 siblings, 1 reply; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 6:55 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel > From: Steinar Bang <sb@dod.no> > Date: Mon, 06 Apr 2015 08:50:15 +0200 > > >>>>> Richard Stallman <rms@gnu.org>: > > > I did > > >> git reset --hard HEAD > > > since I had installed all my changes. > > Then I did 'git pull' and it reported a lot of things. > > Then I did 'git status' which produced this: > > > # On branch master > > # Your branch is ahead of 'origin/master' by 2 commits. > > # > > nothing to commit (working directory clean) > > > What does that second line "ahead of" mean? > > It means that the branch master has two commits that aren't in > origin/master (which is your local copy of what's on savannah). > > > Is it a problem? > > I don't think so. I think they are probably artifacts of two of the > pull commands done, so I think you probably won't need them. > > The following is a way to remove the two commits from master in your git > repository Perhaps it would be better to look at those two commits first? I think the following command will accomplish that: git diff origin/master ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 6:55 ` Stash Eli Zaretskii @ 2015-04-06 11:25 ` Mathias Megyei 2015-04-06 11:30 ` Stash Eli Zaretskii 0 siblings, 1 reply; 54+ messages in thread From: Mathias Megyei @ 2015-04-06 11:25 UTC (permalink / raw) To: Eli Zaretskii, Steinar Bang; +Cc: emacs-devel On 04/06/15 08:55, Eli Zaretskii wrote: >> From: Steinar Bang <sb@dod.no> >> Date: Mon, 06 Apr 2015 08:50:15 +0200 >> >>>>>>> Richard Stallman <rms@gnu.org>: >>>>>>> >>>>>>> >>>>>>> Then I did 'git status' which produced this: >>>>>>> >>> # On branch master >>> # Your branch is ahead of 'origin/master' by 2 commits. >>> # >>> nothing to commit (working directory clean) >>> What does that second line "ahead of" mean? > Perhaps it would be better to look at those two commits first? I > think the following command will accomplish that: > > git diff origin/master > Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? In this situation 'gitk' (or 'gitk --all') will give all the necessary information where the two commits come from. Mathias ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:25 ` Stash Mathias Megyei @ 2015-04-06 11:30 ` Eli Zaretskii 2015-04-06 11:56 ` Stash Yuri Khan 2015-04-06 11:59 ` Stash João Távora 0 siblings, 2 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 11:30 UTC (permalink / raw) To: Mathias Megyei; +Cc: sb, emacs-devel > Date: Mon, 06 Apr 2015 13:25:41 +0200 > From: Mathias Megyei <mathias@mnet-mail.de> > CC: emacs-devel@gnu.org > > > Perhaps it would be better to look at those two commits first? I > > think the following command will accomplish that: > > > > git diff origin/master > > > Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? I don't want to assume gitk is installed, nor that the Git commands are invoked from a sufficiently capable terminal. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:30 ` Stash Eli Zaretskii @ 2015-04-06 11:56 ` Yuri Khan 2015-04-06 12:06 ` Stash João Távora 2015-04-06 12:19 ` Stash Eli Zaretskii 2015-04-06 11:59 ` Stash João Távora 1 sibling, 2 replies; 54+ messages in thread From: Yuri Khan @ 2015-04-06 11:56 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Mathias Megyei, Steinar Bang, Emacs developers On Mon, Apr 6, 2015 at 5:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: >> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? > > I don't want to assume gitk is installed, nor that the Git commands > are invoked from a sufficiently capable terminal. A git browser (especially a graphical, point-and-clicky one) is an immensely useful tool in understanding and learning Git. And gitk is the one that has the best chance of being installed, or easiest to install. (Most other git browsers are platform-specific.) Alternatively, Emacs could include a git browser. (Magit already does; I don’t know about vc.) A git browser is most useful if directed to show not only the current branch but also the associated remote tracking branch, e.g. (assuming a POSIX shell): $ gitk HEAD $(git rev-parse --symbolic-full-name @{u}) & ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:56 ` Stash Yuri Khan @ 2015-04-06 12:06 ` João Távora 2015-04-06 12:25 ` Stash Eli Zaretskii 2015-04-06 12:19 ` Stash Eli Zaretskii 1 sibling, 1 reply; 54+ messages in thread From: João Távora @ 2015-04-06 12:06 UTC (permalink / raw) To: Yuri Khan; +Cc: Mathias Megyei, Eli Zaretskii, Steinar Bang, Emacs developers On Mon, Apr 6, 2015 at 12:56 PM, Yuri Khan <yuri.v.khan@gmail.com> wrote: > On Mon, Apr 6, 2015 at 5:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: > >>> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? >> >> I don't want to assume gitk is installed, nor that the Git commands >> are invoked from a sufficiently capable terminal. > > A git browser (especially a graphical, point-and-clicky one) is an > immensely useful tool in understanding and learning Git. And gitk is > the one that has the best chance of being installed, or easiest to > install. (Most other git browsers are platform-specific.) > > Alternatively, Emacs could include a git browser. (Magit already does; > I don’t know about vc.) > > > A git browser is most useful if directed to show not only the current > branch but also the associated remote tracking branch, e.g. (assuming > a POSIX shell): > > $ gitk HEAD $(git rev-parse --symbolic-full-name @{u}) & A command like git log --graph --pretty=format:'%Cred%h%Creset%n' \ --abbrev-commit --date=relative --branches --all or a more sophisticated variation thereof should be readily portable and provides at least some visualization of the graph. This particular one stolen from http://stackoverflow.com/questions/7007758/how-to-drawedit-an-ascii-git-tree but I've seen other versions that name branches and labels -- João Távora ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 12:06 ` Stash João Távora @ 2015-04-06 12:25 ` Eli Zaretskii 0 siblings, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 12:25 UTC (permalink / raw) To: João Távora; +Cc: mathias, emacs-devel, sb, yuri.v.khan > From: João Távora <joaotavora@gmail.com> > Date: Mon, 6 Apr 2015 13:06:49 +0100 > Cc: Eli Zaretskii <eliz@gnu.org>, Mathias Megyei <mathias@mnet-mail.de>, Steinar Bang <sb@dod.no>, > Emacs developers <emacs-devel@gnu.org> > > A command like > > git log --graph --pretty=format:'%Cred%h%Creset%n' \ > --abbrev-commit --date=relative --branches --all > > or a more sophisticated variation thereof should be readily portable > and provides at least some visualization of the graph. Do we really need that, given the log view that we already have in VC? ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:56 ` Stash Yuri Khan 2015-04-06 12:06 ` Stash João Távora @ 2015-04-06 12:19 ` Eli Zaretskii 1 sibling, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 12:19 UTC (permalink / raw) To: Yuri Khan; +Cc: mathias, sb, emacs-devel > From: Yuri Khan <yuri.v.khan@gmail.com> > Date: Mon, 6 Apr 2015 17:56:47 +0600 > Cc: Mathias Megyei <mathias@mnet-mail.de>, Steinar Bang <sb@dod.no>, > Emacs developers <emacs-devel@gnu.org> > > On Mon, Apr 6, 2015 at 5:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: > > >> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? > > > > I don't want to assume gitk is installed, nor that the Git commands > > are invoked from a sufficiently capable terminal. > > A git browser (especially a graphical, point-and-clicky one) is an > immensely useful tool in understanding and learning Git. And gitk is > the one that has the best chance of being installed, or easiest to > install. (Most other git browsers are platform-specific.) > > Alternatively, Emacs could include a git browser. (Magit already does; > I don’t know about vc.) All true, but most of that needs user actions to actually show the diffs; by default they only show the SHA1 values and the DAG, which is not what is needed here. And even the DAG itself might be confusing at times to someone uninitiated. The instructions, by contrast, aim at being as clear and unequivocal as possible. There's nothing more irritating than a recipe that doesn't work or cannot be followed or understood, particularly when you are trying to get yourself out of some trouble you don't fully understand. > A git browser is most useful if directed to show not only the current > branch but also the associated remote tracking branch, e.g. (assuming > a POSIX shell): > > $ gitk HEAD $(git rev-parse --symbolic-full-name @{u}) & Yes, but all this is almost useless to someone who doesn't yet know what a "remote tracking branch" is. It will take time for the audience of GitQuickStartForEmacsDevs to get there. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:30 ` Stash Eli Zaretskii 2015-04-06 11:56 ` Stash Yuri Khan @ 2015-04-06 11:59 ` João Távora 2015-04-06 12:21 ` Stash Eli Zaretskii 1 sibling, 1 reply; 54+ messages in thread From: João Távora @ 2015-04-06 11:59 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Mathias Megyei, sb, emacs-devel On Mon, Apr 6, 2015 at 12:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: >> > >> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? > I don't want to assume gitk is installed, nor that the Git commands > are invoked from a sufficiently capable terminal. Fair enough, but perhaps what Mathias meant is that there should be mention of the commit graph in those pages, and how somehow visualizing it could clear so many doubts. There is no mention of "graph" in both Git*ForEmacsDevs pages and I don't think it's an implementation detail. So at least some ASCII art. My two cents, João Távora ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 11:59 ` Stash João Távora @ 2015-04-06 12:21 ` Eli Zaretskii 2015-04-06 13:06 ` Stash João Távora 0 siblings, 1 reply; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 12:21 UTC (permalink / raw) To: João Távora; +Cc: mathias, sb, emacs-devel > From: João Távora <joaotavora@gmail.com> > Date: Mon, 6 Apr 2015 12:59:10 +0100 > Cc: Mathias Megyei <mathias@mnet-mail.de>, sb@dod.no, emacs-devel <emacs-devel@gnu.org> > > On Mon, Apr 6, 2015 at 12:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: > >> > > >> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? > > I don't want to assume gitk is installed, nor that the Git commands > > are invoked from a sufficiently capable terminal. > > Fair enough, but perhaps what Mathias meant is that there should be mention > of the commit graph in those pages, and how somehow visualizing it could > clear so many doubts. > > There is no mention of "graph" in both Git*ForEmacsDevs pages > and I don't think it's an implementation detail. So at least some ASCII art. Thanks. The DAG is not mentioned there because I'm not sure what purpose that would serve in the context of the instructions there. In general, people who use vc-dir are already familiar with the revision graph, because it's not something invented by Git. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 12:21 ` Stash Eli Zaretskii @ 2015-04-06 13:06 ` João Távora 0 siblings, 0 replies; 54+ messages in thread From: João Távora @ 2015-04-06 13:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Mathias Megyei, sb, emacs-devel On Mon, Apr 6, 2015 at 1:21 PM, Eli Zaretskii <eliz@gnu.org> wrote: >> From: João Távora <joaotavora@gmail.com> >> Date: Mon, 6 Apr 2015 12:59:10 +0100 >> Cc: Mathias Megyei <mathias@mnet-mail.de>, sb@dod.no, emacs-devel <emacs-devel@gnu.org> >> >> On Mon, Apr 6, 2015 at 12:30 PM, Eli Zaretskii <eliz@gnu.org> wrote: >> >> > >> >> Is there a reason why you don't mention 'gitk' in GitQuickStartForEmacsDevs? >> > I don't want to assume gitk is installed, nor that the Git commands >> > are invoked from a sufficiently capable terminal. >> >> Fair enough, but perhaps what Mathias meant is that there should be mention >> of the commit graph in those pages, and how somehow visualizing it could >> clear so many doubts. >> >> There is no mention of "graph" in both Git*ForEmacsDevs pages >> and I don't think it's an implementation detail. So at least some ASCII art. > > Thanks. > > The DAG is not mentioned there because I'm not sure what purpose that > would serve in the context of the instructions there. > > In general, people who use vc-dir are already familiar with the > revision graph, because it's not something invented by Git. But Git forces you to understand it intimately. Even when pushing/pulling linearly to a single branch, which is a situation where many devs may think they don't have to care about it. So it's not enough to mention "branches" and "merges" which many devs might think is someone's elses jurisdiction. This exposed complexity is fortunate/unfortunate depending on the point of view. VC may try to hide it: I've seen many attempts to do so but never done well, so good luck :-) -- João Távora ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 6:50 ` Stash Steinar Bang 2015-04-06 6:55 ` Stash Eli Zaretskii @ 2015-04-06 6:55 ` Eli Zaretskii 2015-04-06 14:53 ` Stash Steinar Bang 2 siblings, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 6:55 UTC (permalink / raw) To: Steinar Bang, Richard Stallman; +Cc: emacs-devel > From: Steinar Bang <sb@dod.no> > Date: Mon, 06 Apr 2015 08:50:15 +0200 > > >>>>> Richard Stallman <rms@gnu.org>: > > > I did > > >> git reset --hard HEAD > > > since I had installed all my changes. > > Then I did 'git pull' and it reported a lot of things. > > Then I did 'git status' which produced this: > > > # On branch master > > # Your branch is ahead of 'origin/master' by 2 commits. > > # > > nothing to commit (working directory clean) > > > What does that second line "ahead of" mean? > > It means that the branch master has two commits that aren't in > origin/master (which is your local copy of what's on savannah). > > > Is it a problem? > > I don't think so. I think they are probably artifacts of two of the > pull commands done, so I think you probably won't need them. > > The following is a way to remove the two commits from master in your git > repository Perhaps it would be better to look at those two commits first? I think the following command will accomplish that: git diff origin/master ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 6:50 ` Stash Steinar Bang 2015-04-06 6:55 ` Stash Eli Zaretskii 2015-04-06 6:55 ` Stash Eli Zaretskii @ 2015-04-06 14:53 ` Steinar Bang 2015-04-06 15:07 ` Stash Harald Hanche-Olsen 2 siblings, 1 reply; 54+ messages in thread From: Steinar Bang @ 2015-04-06 14:53 UTC (permalink / raw) To: emacs-devel >>>>> Steinar Bang <sb@dod.no>: >>>>> Richard Stallman <rms@gnu.org>: >> I did >>> git reset --hard HEAD >> since I had installed all my changes. >> Then I did 'git pull' and it reported a lot of things. >> Then I did 'git status' which produced this: >> # On branch master >> # Your branch is ahead of 'origin/master' by 2 commits. >> # >> nothing to commit (working directory clean) >> What does that second line "ahead of" mean? > It means that the branch master has two commits that aren't in > origin/master (which is your local copy of what's on savannah). Speficically, it's like this: A git branch is a list of commits, each pointing to its ancestor (except for merge commits, which have two ancestors). Git branches can be (er...) branched, and from the fork of the branch and backwards, the branches are the same. Once you have hold of a commit, you actually have hold of a branch with that commit at its head. Branch names like "master" and "origin/master" are just symbolic names pointing to a particular commit. So what you have (this needs a fixed width font), is: origin/master | v --o<--o<--o<--o<--o ^ | master Ie. there is a chain of commits in your local repository forming a history. The local branch "master" points to one commit, and the branch "origin/master" (which is your local representation of the state on savannah). When you do git fetch changes are fetched from savanna and added to the list pointed to by origin/master (actually, the commits are just added, since they already are pointing back to their ancestor, and origin/master is just changed to point to the newest commit from savannah). If you have no changes on your local branch "master", the master branch can be moved in the same way, ie. "master" can be changed to point to the newest commit from savannah (this is what's known as a "fast forward" merge) If you have commits on your "master", "origin/master" and "master" needs to be merged, just like any branch. What I proposed, was to first create a new branch holding the current state of master, and then reset "master" to point to the same commit as "origin/master": origin/master | v --o<--o<--o<--o<--o ^ ^ | | | two-unexpected-commits-on-master master "origin/master" and "master" are actually files: .git/refs/heads/master .git/refs/remotes/origin/master Inside the files is a sha1 hash uniquely defining a commit. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 14:53 ` Stash Steinar Bang @ 2015-04-06 15:07 ` Harald Hanche-Olsen 2015-04-06 18:48 ` Stash Steinar Bang 0 siblings, 1 reply; 54+ messages in thread From: Harald Hanche-Olsen @ 2015-04-06 15:07 UTC (permalink / raw) To: emacs-devel Steinar Bang wrote: Good explanation, but … > "origin/master" and "master" are actually files: > .git/refs/heads/master > .git/refs/remotes/origin/master > > Inside the files is a sha1 hash uniquely defining a commit. They are more than that. There is also behaviour associated with these branches found in the configuration: ; git config --get-regexp '^branch.master' branch.master.remote origin branch.master.merge refs/heads/master ; git config --get-regexp '^remote.origin' remote.origin.url git://git.savannah.gnu.org/emacs.git remote.origin.fetch +refs/heads/*:refs/remotes/origin/* ; (Or just look into .git/config.) I suppose that you can argue that this is external to the branches themselves, but really, the merging and fetching behaviours are central to how these branches work. – Harald ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 15:07 ` Stash Harald Hanche-Olsen @ 2015-04-06 18:48 ` Steinar Bang 0 siblings, 0 replies; 54+ messages in thread From: Steinar Bang @ 2015-04-06 18:48 UTC (permalink / raw) To: emacs-devel >>>>> Harald Hanche-Olsen <hanche@math.ntnu.no>: > I suppose that you can argue that this is external to the branches > themselves, but really, the merging and fetching behaviours are > central to how these branches work. They are central to how these branches work, but not how commits hang together, and not to how "origin/master" and "master" points to commits. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:31 ` Stash Steinar Bang ` (2 preceding siblings ...) 2015-04-06 5:50 ` Stash Richard Stallman @ 2015-04-06 5:51 ` Richard Stallman 2015-04-06 7:29 ` Stash Eli Zaretskii 2015-04-07 20:12 ` Stash Stephen J. Turnbull 3 siblings, 2 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-06 5:51 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] One superiority of CVS is 'cvs up' reports its actions in a clear and concise way. Once you know what the letters mean, it is all straightforward. If it updates a lot of files, I often do 'cvs up' a second time, knowing it will show me only the files I have changed and might want to install. I have forgotten what Bzr's output looked like, but I recall that it was easy for me to see what conflicts there were. Then I used vc-dir to see what files I might need to install. Git outputs a mass of information. As a Git beginner I don't understand what part of it might indicate a problem. This is a serious concrete failing of Git. I think Git ought to have an 'update' facility, for simple usage scenarios, that would be just as easy to use as cvs update. In more complex scenarios, it could refuse to operate. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 5:51 ` Stash Richard Stallman @ 2015-04-06 7:29 ` Eli Zaretskii 2015-04-06 7:55 ` Stash Harald Hanche-Olsen 2015-04-07 16:13 ` Stash Richard Stallman 2015-04-07 20:12 ` Stash Stephen J. Turnbull 1 sibling, 2 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-06 7:29 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Mon, 06 Apr 2015 01:51:06 -0400 > From: Richard Stallman <rms@gnu.org> > Cc: emacs-devel@gnu.org > > One superiority of CVS is 'cvs up' reports its actions in a clear and > concise way. Once you know what the letters mean, it is all > straightforward. > > If it updates a lot of files, I often do 'cvs up' a second time, > knowing it will show me only the files I have changed and might want > to install. There's no alternative here but to learn to use a different command for showing that: git status --short It should produce approximately the same display as you are used to with CVS: M modified-file1 M modified-file2 ?? unregistered-file1 etc. You can see the entire set of two-letter status markers in the man page of "git status". > I have forgotten what Bzr's output looked like, but I recall that it > was easy for me to see what conflicts there were. Bzr would state the conflicted files at the end of the "status" command. It also had an explicit "bzr conflicts" command. Git shows conflicts with two-letter codes; e.g., a file that was modified both upstream and by you locally will be marked with "UU", which means that both you and "them" Updated the file. > Git outputs a mass of information. As a Git beginner I don't > understand what part of it might indicate a problem. This is a > serious concrete failing of Git. Do you mean the information presented by "git pull", or do you mean some other command? "git pull" outputs roughly the same amount of information as CVS and bzr would, just in slightly different format. Here's an example: $ git pull remote: Counting objects: 215, done. remote: Compressing objects: 100% (98/98), done. remote: Total 98 (delta 88), reused 0 (delta 0) Unpacking objects: 100% (98/98), done. This part is just status messages during "fetching" (i.e. bringing the new stuff) from upstream. It has no direct CVS equivalent; bzr had something similar. From git.savannah.gnu.org:/srv/git/emacs ba0a6e9..b884ff3 master -> origin/master 21d4bf6..8272c1d emacs-24 -> origin/emacs-24 * [new tag] emacs-24.5-rc3 -> emacs-24.5-rc3 This part describes repository-global events, like new branches, new tags, etc. Updating ba0a6e9..b884ff3 Fast-forward ChangeLog | 4 +- doc/misc/htmlfontify.texi | 10 +-- etc/NEWS | 6 ++ lisp/ChangeLog | 17 ++++ lisp/ChangeLog.16 | 2 +- lisp/gnus/ChangeLog | 8 +- lisp/gnus/rtree.el | 7 +- lisp/htmlfontify.el | 11 +-- lisp/org/ox-odt.el | 7 +- lisp/progmodes/python.el | 97 ++++++++++++++++------- test/ChangeLog | 9 +++ test/automated/python-tests.el | 173 +++++++++++++++++++++++++++++++++++++++++ 12 files changed, 305 insertions(+), 46 deletions(-) This is the main part that describes the "merge" step of "git pull": it says it performed a "fast-forward" (see below), and then shows one line for each updated file with "diffstat" form of statistics of changes in each file. The last line is a summary of the changes. As you see, this is not very different from what CVS and bzr displayed in these circumstances. ("Fast-forward" means the stuff fetched from upstream was pure additions to what you had locally, i.e. your local branch did not diverge from upstream since the last pull. If you have local changes that you committed, but didn't yet push upstream, you will generally not see the fast-forward part.) > I think Git ought to have an 'update' facility, for simple usage > scenarios, that would be just as easy to use as cvs update. The only major difference between "git pull" and "cvs/bzr update" is that the latter didn't expose the "fetch" and the "merge" parts to the user (CVS couldn't expose it because everything was done on the server). Git does expose that, so when pull fails due to conflicts, it tells you about the failed merge. You need to realize that the merge in question is an integral part of pull, and simply deal with the conflicts much in the same way as you'd do for CVS and bzr. What other parts of "git pull" are "not simple", which you think need to be simplified? ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 7:29 ` Stash Eli Zaretskii @ 2015-04-06 7:55 ` Harald Hanche-Olsen 2015-04-07 16:13 ` Stash Richard Stallman 1 sibling, 0 replies; 54+ messages in thread From: Harald Hanche-Olsen @ 2015-04-06 7:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, rms, emacs-devel Eli Zaretskii wrote: > There's no alternative here but to learn to use a different command > for showing that: > > git status --short > > It should produce approximately the same display as you are used to > with CVS: > > M modified-file1 > M modified-file2 > ?? unregistered-file1 But note that there are *two* flag characters at the beginning of each line: One for what's in the index, and the second for the file in the work tree. I find it useful to add --branch to the flags. And I find it extremely useful to employ git's aliasing mechanism: ; git config --global alias.s 'status --short --branch' ; git help s `git s' is aliased to `status --short --branch' ; git s ## master...origin/master ; Make your own shortcuts to often used commands this way. It makes your life simpler, at the possible expense of making it harder to explain your actions to others. (Just include the necessary “git help” commands if you need to explain what you have been doing.) – Harald ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 7:29 ` Stash Eli Zaretskii 2015-04-06 7:55 ` Stash Harald Hanche-Olsen @ 2015-04-07 16:13 ` Richard Stallman 2015-04-07 16:48 ` Stash Eli Zaretskii 2015-04-07 16:58 ` Stash Andreas Schwab 1 sibling, 2 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-07 16:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > This is the main part that describes the "merge" step of "git pull": > it says it performed a "fast-forward" (see below), and then shows one > line for each updated file with "diffstat" form of statistics of > changes in each file. The last line is a summary of the changes. > As you see, this is not very different from what CVS and bzr displayed > in these circumstances. Here are some important differences: * cvs up indicates in a very visible way which files I have local changes in. What's more, if it mentions many other files, I can do cvs up again immediately and see ONLY the files I have local changes in. * cvs up will not "fail". The worst that can happen is that some file has a conflict, and if I don't bother with it immediately, I will get reminded of it later. * git pull outputs lots of unhelpful detail when nothing is wrong. To READ all that would be a useless pain in the neck, so I only checked to see when it finished. Thus, on the occasion when (we now suspect) it reported a real problem, I didn't notice. > The only major difference It is a mistake to focus on "major" (i.e., fundamental) differences. A superficial difference can have a big effect on reliability. The three differences above may not be major, but they are very important. between "git pull" and "cvs/bzr update" is > that the latter didn't expose the "fetch" and the "merge" parts to the > user (CVS couldn't expose it because everything was done on the > server). People said that git merge can fail for another reason (I forget what), not only because of conflicts. It looked like that might be what happened to me, which led me to edit an old lisp/ChangeLog file even though I had just done a git pull. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 16:13 ` Stash Richard Stallman @ 2015-04-07 16:48 ` Eli Zaretskii 2015-04-07 19:51 ` Stash Stephen J. Turnbull ` (2 more replies) 2015-04-07 16:58 ` Stash Andreas Schwab 1 sibling, 3 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-07 16:48 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Tue, 07 Apr 2015 12:13:53 -0400 > From: Richard Stallman <rms@gnu.org> > CC: sb@dod.no, emacs-devel@gnu.org > > > This is the main part that describes the "merge" step of "git pull": > > it says it performed a "fast-forward" (see below), and then shows one > > line for each updated file with "diffstat" form of statistics of > > changes in each file. The last line is a summary of the changes. > > > As you see, this is not very different from what CVS and bzr displayed > > in these circumstances. > > Here are some important differences: > > * cvs up indicates in a very visible way which files I have local changes in. You mean, the "C" conflict marker? Or do you mean something else? > What's more, if it mentions many other files, I can do cvs up again > immediately and see ONLY the files I have local changes in. As I said, you need to use "git status" for that. It will show the same output if invoked repeatedly. > * cvs up will not "fail". The worst that can happen is that some > file has a conflict, and if I don't bother with it immediately, > I will get reminded of it later. Right, but this is unrelated to the display during "pull". > * git pull outputs lots of unhelpful detail when nothing is wrong. Not sure what you allude to here. Is that the diffstat display of the amount of changes in each file? You can turn that off, if you want; try "git pull --no-stat" (if you like that, it can be made the default in your .gitconfig). > between "git pull" and "cvs/bzr update" is > > that the latter didn't expose the "fetch" and the "merge" parts to the > > user (CVS couldn't expose it because everything was done on the > > server). > > People said that git merge can fail for another reason (I forget > what), not only because of conflicts. I'm not aware of any, unless they meant uncommitted changes in the same files that were changed upstream (which is covered on the Wiki under "conflicts"). > It looked like that might be what happened to me, which led me to > edit an old lisp/ChangeLog file even though I had just done a git > pull. Sorry for asking the obvious: did you revert lisp/ChangeLog's buffer after pulling? But anyway, let's not worry about unexplained things in the past that we cannot explain. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 16:48 ` Stash Eli Zaretskii @ 2015-04-07 19:51 ` Stephen J. Turnbull 2015-04-08 18:20 ` Stash Richard Stallman 2015-04-08 18:21 ` Stash Richard Stallman 2015-04-08 18:21 ` Stash Richard Stallman 2 siblings, 1 reply; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-07 19:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, rms, emacs-devel Eli Zaretskii writes: > > People said that git merge can fail for another reason (I forget > > what), not only because of conflicts. > > I'm not aware of any, unless they meant uncommitted changes in the > same files that were changed upstream (which is covered on the Wiki > under "conflicts"). Assuming enough free disk and memory, etc, a requested merge that does not terminate normally is always due to conflicts. If the conflict is between the incoming branch and content committed to the current branch, then the merge will be started and terminate with files updated and conflict markers where needed. In git, unlike bzr and hg and "CVS update", normal termination of a merge will also create a commit object and advance the branch's HEAD pointer. If the conflict is between the incoming branch and uncommitted changes in the workspace, the requested merge fails git's preconditions and does not even start. No files in the workspace are touched, no commit objects are created, and the HEAD pointer is not moved. Some people (who I believe are not native speakers) have called both non-success modes "failure". ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 19:51 ` Stash Stephen J. Turnbull @ 2015-04-08 18:20 ` Richard Stallman 0 siblings, 0 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-08 18:20 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: eliz, sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > If the conflict is between the incoming branch and uncommitted changes > in the workspace, the requested merge fails git's preconditions and > does not even start. No files in the workspace are touched, no commit > objects are created, and the HEAD pointer is not moved. > Some people (who I believe are not native speakers) have called both > non-success modes "failure". Both of them are failures, because in both cases the pull doesn't do its intended job of bringing in the latest changes so you can commit something correct. I will not let the Git developers redefine one of these failure modes as a kind of success. I will continue to refer to them both as failures. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 16:48 ` Stash Eli Zaretskii 2015-04-07 19:51 ` Stash Stephen J. Turnbull @ 2015-04-08 18:21 ` Richard Stallman 2015-04-08 18:33 ` Stash Eli Zaretskii 2015-04-08 18:21 ` Stash Richard Stallman 2 siblings, 1 reply; 54+ messages in thread From: Richard Stallman @ 2015-04-08 18:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > * cvs up indicates in a very visible way which files I have local changes in. > You mean, the "C" conflict marker? Or do you mean something else? Usually M because there are no conflicts. Occasionally there is a conflict so it says C. > > What's more, if it mentions many other files, I can do cvs up again > > immediately and see ONLY the files I have local changes in. > As I said, you need to use "git status" for that. It will show the > same output if invoked repeatedly. One more hassle of using Git. > > * cvs up will not "fail". The worst that can happen is that some > > file has a conflict, and if I don't bother with it immediately, > > I will get reminded of it later. > Right, but this is unrelated to the display during "pull". The point is that the output from pull is long and mostly meaningless, so I didn't look at it at all. > Not sure what you allude to here. Is that the diffstat display of the > amount of changes in each file? That, and all the rest of the output. It is verbose and doesn't tell me anything useful, so I don't look at it. > > People said that git merge can fail for another reason (I forget > > what), not only because of conflicts. > I'm not aware of any, unless they meant uncommitted changes in the > same files that were changed upstream (which is covered on the Wiki > under "conflicts"). Yes, that was it. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-08 18:21 ` Stash Richard Stallman @ 2015-04-08 18:33 ` Eli Zaretskii 2015-04-09 13:16 ` Stash Richard Stallman 0 siblings, 1 reply; 54+ messages in thread From: Eli Zaretskii @ 2015-04-08 18:33 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Wed, 08 Apr 2015 14:21:36 -0400 > From: Richard Stallman <rms@gnu.org> > CC: sb@dod.no, emacs-devel@gnu.org > > > As I said, you need to use "git status" for that. It will show the > > same output if invoked repeatedly. > > One more hassle of using Git. That hassle is common to all modern VCSes, including Bazaar, Mercurial, and AFAIR also Subversion. (CVS also has the status command, btw.) > The point is that the output from pull is long and mostly meaningless, > so I didn't look at it at all. > > > Not sure what you allude to here. Is that the diffstat display of the > > amount of changes in each file? > > That, and all the rest of the output. It is verbose and doesn't tell > me anything useful, so I don't look at it. As I said, please try "pull --no-stat", maybe that is what you want. You can customize Git to do that by default, if you want. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-08 18:33 ` Stash Eli Zaretskii @ 2015-04-09 13:16 ` Richard Stallman 2015-04-09 13:45 ` Stash Eli Zaretskii 0 siblings, 1 reply; 54+ messages in thread From: Richard Stallman @ 2015-04-09 13:16 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > That, and all the rest of the output. It is verbose and doesn't tell > > me anything useful, so I don't look at it. > As I said, please try "pull --no-stat", maybe that is what you want. From what you said before, that option would elimate part of the useless output. However, the remaining output would still be useless, so my eyes would still glaze over if I tried to read it. Thus I concluded that --no-stat would not change much. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-09 13:16 ` Stash Richard Stallman @ 2015-04-09 13:45 ` Eli Zaretskii 2015-04-10 10:57 ` Stash Richard Stallman 0 siblings, 1 reply; 54+ messages in thread From: Eli Zaretskii @ 2015-04-09 13:45 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel > Date: Thu, 09 Apr 2015 09:16:28 -0400 > From: Richard Stallman <rms@gnu.org> > CC: sb@dod.no, emacs-devel@gnu.org > > > > That, and all the rest of the output. It is verbose and doesn't tell > > > me anything useful, so I don't look at it. > > > As I said, please try "pull --no-stat", maybe that is what you want. > > From what you said before, that option would elimate part of the > useless output. However, the remaining output would still be useless, > so my eyes would still glaze over if I tried to read it. > > Thus I concluded that --no-stat would not change much. Please try it. It eliminates almost everything. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-09 13:45 ` Stash Eli Zaretskii @ 2015-04-10 10:57 ` Richard Stallman 0 siblings, 0 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-10 10:57 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > Thus I concluded that --no-stat would not change much. > Please try it. It eliminates almost everything. Ok, I will try it. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 16:48 ` Stash Eli Zaretskii 2015-04-07 19:51 ` Stash Stephen J. Turnbull 2015-04-08 18:21 ` Stash Richard Stallman @ 2015-04-08 18:21 ` Richard Stallman 2 siblings, 0 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-08 18:21 UTC (permalink / raw) To: Eli Zaretskii; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > * cvs up indicates in a very visible way which files I have local changes in. > You mean, the "C" conflict marker? Or do you mean something else? Usually M because there are no conflicts. Occasionally there is a conflict so it says C. > > What's more, if it mentions many other files, I can do cvs up again > > immediately and see ONLY the files I have local changes in. > As I said, you need to use "git status" for that. It will show the > same output if invoked repeatedly. One more hassle of using Git. > > * cvs up will not "fail". The worst that can happen is that some > > file has a conflict, and if I don't bother with it immediately, > > I will get reminded of it later. > Right, but this is unrelated to the display during "pull". The point is that the output from pull is long and mostly meaningless, so I didn't look at it at all. > Not sure what you allude to here. Is that the diffstat display of the > amount of changes in each file? That, and all the rest of the output. It is verbose and doesn't tell me anything useful, so I don't look at it. > Sorry for asking the obvious: did you revert lisp/ChangeLog's buffer > after pulling? I could not have omitted that. Emacs would have warned me when I tried to save the file. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 16:13 ` Stash Richard Stallman 2015-04-07 16:48 ` Stash Eli Zaretskii @ 2015-04-07 16:58 ` Andreas Schwab 2015-04-08 18:21 ` Stash Richard Stallman 1 sibling, 1 reply; 54+ messages in thread From: Andreas Schwab @ 2015-04-07 16:58 UTC (permalink / raw) To: Richard Stallman; +Cc: Eli Zaretskii, sb, emacs-devel Richard Stallman <rms@gnu.org> writes: > * cvs up will not "fail". The worst that can happen is that some > file has a conflict, This is a fail. You have now effectively lost your own changes in a subtle way. 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] 54+ messages in thread
* Re: Stash 2015-04-07 16:58 ` Stash Andreas Schwab @ 2015-04-08 18:21 ` Richard Stallman 2015-04-09 17:07 ` Stash Andreas Schwab 0 siblings, 1 reply; 54+ messages in thread From: Richard Stallman @ 2015-04-08 18:21 UTC (permalink / raw) To: Andreas Schwab; +Cc: eliz, sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > * cvs up will not "fail". The worst that can happen is that some > > file has a conflict, > This is a fail. You have now effectively lost your own changes in a > subtle way. I've done it hundreds of times. I don't lose my changes; they are still there. It is not a fail, it is normal use. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-08 18:21 ` Stash Richard Stallman @ 2015-04-09 17:07 ` Andreas Schwab 2015-04-10 10:58 ` Stash Richard Stallman 0 siblings, 1 reply; 54+ messages in thread From: Andreas Schwab @ 2015-04-09 17:07 UTC (permalink / raw) To: Richard Stallman; +Cc: eliz, sb, emacs-devel Richard Stallman <rms@gnu.org> writes: > I've done it hundreds of times. I don't lose my changes; they are still > there. It's very easy to fail to notice, and impossible to find out after the fact. With git, you can recover the previous state. 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] 54+ messages in thread
* Re: Stash 2015-04-09 17:07 ` Stash Andreas Schwab @ 2015-04-10 10:58 ` Richard Stallman 0 siblings, 0 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-10 10:58 UTC (permalink / raw) To: Andreas Schwab; +Cc: eliz, sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > I've done it hundreds of times. I don't lose my changes; they are still > > there. > It's very easy to fail to notice, and impossible to find out after the > fact. Your statements do not accord with my experience -- and I have lots of experience maintaining Emacs with cvs. Sometimes I did cvs up many times with some of my changes remaining in the working files. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-06 5:51 ` Stash Richard Stallman 2015-04-06 7:29 ` Stash Eli Zaretskii @ 2015-04-07 20:12 ` Stephen J. Turnbull 2015-04-09 13:16 ` Stash Richard Stallman 1 sibling, 1 reply; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-07 20:12 UTC (permalink / raw) To: rms; +Cc: Steinar Bang, emacs-devel Richard Stallman writes: > I think Git ought to have an 'update' facility, for simple usage > scenarios, that would be just as easy to use as cvs update. In > more complex scenarios, it could refuse to operate. Lack of a facility that only merges into the workspace and pays no attention to the revision history is a deliberate design choice. One reason that git developers do not add such a mode is that it can and does create future conflicts. What can (and did) happen in CVS is that developers who preferred to keep pending changes in their workspaces would repeatedly cvs up and repeatedly resolve different conflicts, which would end up all jammed together in a single commit. In CVS, everybody worked on the mainline, and there was very little branching or cherrypicking, so very little annoyance, since essentially all workspaces were based on tip of trunk. However, the resolutions would not be recorded individually in the history. In git, this causes headaches for third parties who were cherrypicking or rebasing because they had only *some* of the conflicting changes, and had to decide for themselves how to resolve those conflicts that had resolutions but not conflicting changes. Often they would decide differently, not knowing the history, and thus end up reverting the original resolution. So with git, the annoyance to other developers became the dominant factor because of the prevalence of multiple-branch development workflows. I think it is likely that a request for such a feature to the Git project would be immediately closed WONTFIX, but you could try. You could keep track of whether previous pulls had required conflict resolution, and refuse to update if there would be conflicts again. I suspect that this would be a horrible workflow, requiring a pile of git knowledge to reconstruct an appropriate state to commit. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-07 20:12 ` Stash Stephen J. Turnbull @ 2015-04-09 13:16 ` Richard Stallman 2015-04-09 16:53 ` Stash Stephen J. Turnbull 0 siblings, 1 reply; 54+ messages in thread From: Richard Stallman @ 2015-04-09 13:16 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Lack of a facility that only merges into the workspace and pays no > attention to the revision history is a deliberate design choice. One > reason that git developers do not add such a mode is that it can and > does create future conflicts. I prefer future conflicts. Conflicts are normal, and no problem. > What can (and did) happen in CVS is > that developers who preferred to keep pending changes in their > workspaces would repeatedly cvs up and repeatedly resolve different > conflicts, I've done this. It is not a great problem. which would end up all jammed together in a single commit. The commit I ultimately make contains only my own change. All the changes from the repository, that conflicted with my change, I will have merged in. > However, the resolutions would not be recorded individually in the > history. As long as I resolve the conflicts myself, which is like unofficial rebasing, why should that be recorded anywhere? No one needs to know it. Imagine if I had written all my changes just a minute before installing them. That would not bother anyone. This sort of updating would produce the same results, so it should not bother anyone either. In git, this causes headaches for third parties who were > cherrypicking or rebasing because they had only *some* of the > conflicting changes, and had to decide for themselves how to resolve > those conflicts that had resolutions but not conflicting changes. I can't understand that, because it involves things about Git that I don't know and probably never will know. However, I am skeptical of the claim that installing a simple localized change, all at once, could cause complexities like that. If I push just one commit that changes a file, Savannah will contain zero changes from me before I push it, and one change from me after I push it. > You could keep track of whether previous pulls had required conflict > resolution, and refuse to update if there would be conflicts again. I could, but I wouldn't. I'd make it work in all cases, as CVS does. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-09 13:16 ` Stash Richard Stallman @ 2015-04-09 16:53 ` Stephen J. Turnbull 2015-04-10 10:58 ` Stash Richard Stallman 0 siblings, 1 reply; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-09 16:53 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel Richard Stallman writes: > > However, the resolutions would not be recorded individually in the > > history. > > As long as I resolve the conflicts myself, which is like unofficial > rebasing, why should that be recorded anywhere? No one needs to know > it. That's true in CVS, because in practice nobody branched, and in practice "cvs update" was all or nothing; people rarely branched to a tag earlier than HEAD. In git, however, people *frequently* have branches that are not up to date, and if your changes involve conflicts before and after their branch tip, *they* get "screwed" by spurious conflicts if and when they cherry pick or rebase. > Imagine if I had written all my changes just a minute before > installing them. That would not bother anyone. True. > This sort of updating would produce the same results, I believe that to be true of CVS in practice, but false for git in practice, for the reasons already given. >. so it should not bother anyone either. > In git, this causes headaches for third parties who were > > cherrypicking or rebasing because they had only *some* of the > > conflicting changes, and had to decide for themselves how to resolve > > those conflicts that had resolutions but not conflicting changes. > > I can't understand that, because it involves things about Git that I > don't know and probably never will know. Then you have a lot of nerve making the claims you make above! > However, I am skeptical of the clairm that installing a simple > localized change, all at once, could cause complexities like that. If you really never make changes to more than one file (plus ChangeLog) at a time, you're probably right. On the other hand, in that case I think your solution is simply to remember to push. Which is where you started AIUI (ie, wanting an automated push). If you'd started with the position that you wanted that only for yourself and asked somebody to do it for you, you'd have it already, and the rest of us would have been saved a pile of aggravation. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-09 16:53 ` Stash Stephen J. Turnbull @ 2015-04-10 10:58 ` Richard Stallman 2015-04-10 11:18 ` Stash Eli Zaretskii 2015-04-10 13:52 ` Stash Stephen J. Turnbull 0 siblings, 2 replies; 54+ messages in thread From: Richard Stallman @ 2015-04-10 10:58 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: sb, emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > As long as I resolve the conflicts myself, which is like unofficial > > rebasing, why should that be recorded anywhere? No one needs to know > > it. > That's true in CVS, because in practice nobody branched, and in > practice "cvs update" was all or nothing; people rarely branched to a > tag earlier than HEAD. In git, however, people *frequently* have > branches that are not up to date, and if your changes involve > conflicts before and after their branch tip, *they* get "screwed" by > spurious conflicts if and when they cherry pick or rebase. I can't fully really understand this, but I think we are miscommunicating and that what you say is not applicable to what I actually want to do. If I find a way to pull in changes in files I have edited, as was normal with CVS and Bzr, eventually I will install one commit containing my changes to the version current at that time. The effect on Savannah will be equivalent to editing in all my changes at that time and installing them immediately. In fact, that is what I am thinking of doing: working in a non-Git copy of the sources, and putting changes them into the Git-managed directory only to install them immediately on Savannah. If that does cause a problem, you're going to have the problem -- it is up to you to convince me not to use that method. But I think you must be mistaken, that it can't cause any problem, and therefore the local merging I'd like to do with Git also could not cause any problem. > > I can't understand that, because it involves things about Git that I > > don't know and probably never will know. > Then you have a lot of nerve making the claims you make above! I have something better than nerve: a mental proof that the two scenarios (see above) are equivalent for everyone other than me. If you claim that one causes problems and admit the other does not, you must be mistaken somewhere. To be charitable, I suppose you do understand Git and you misunderstood what I'd like to do. > If you really never make changes to more than one file (plus > ChangeLog) at a time, you're probably right. Forget that tangent. I've already told you that I develop various changes, over time, in parallel, in various different files. In order to test them all in real use, I must have them all in the sources of the Emacs I am actually using. I must be able to install one change in Savannah when it is ready, without installing the others that are not ready. The methods that others have proposed seem to involve using lots of branches which I'd have to merge in order to test it all. That seems error-prone as well as lots of work. I will discuss my ideas for this with others, off the list. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! See stallman.org/skype.html. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-10 10:58 ` Stash Richard Stallman @ 2015-04-10 11:18 ` Eli Zaretskii 2015-04-10 13:52 ` Stash Stephen J. Turnbull 1 sibling, 0 replies; 54+ messages in thread From: Eli Zaretskii @ 2015-04-10 11:18 UTC (permalink / raw) To: rms; +Cc: stephen, sb, emacs-devel > Date: Fri, 10 Apr 2015 06:58:11 -0400 > From: Richard Stallman <rms@gnu.org> > Cc: sb@dod.no, emacs-devel@gnu.org > > In fact, that is what I am thinking of doing: working in a non-Git > copy of the sources, and putting changes them into the Git-managed > directory only to install them immediately on Savannah. > > If that does cause a problem, you're going to have the problem -- it > is up to you to convince me not to use that method. It could still cause the push to be rejected, if someone pushes between your pull and your push. But if you commit your to-be-installed changes locally after putting those changes into the Git-managed tree, such rejects can be easily handled by another pull and potentially conflict resolution, similar to what you were used to with CVS. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-10 10:58 ` Stash Richard Stallman 2015-04-10 11:18 ` Stash Eli Zaretskii @ 2015-04-10 13:52 ` Stephen J. Turnbull 1 sibling, 0 replies; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-10 13:52 UTC (permalink / raw) To: rms; +Cc: sb, emacs-devel Richard Stallman writes: > I will discuss my ideas for this with others, off the list. Great! ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 17:42 Stash Richard Stallman 2015-04-05 18:31 ` Stash Steinar Bang @ 2015-04-05 18:40 ` Paul Eggert 2015-04-05 19:25 ` Stash Harald Hanche-Olsen 2015-04-05 19:26 ` Stash Steinar Bang 2015-04-05 19:41 ` Stash Harald Hanche-Olsen 2 siblings, 2 replies; 54+ messages in thread From: Paul Eggert @ 2015-04-05 18:40 UTC (permalink / raw) To: rms, emacs-devel Richard Stallman wrote: > Is there any way I can fix this other than creating a new repository? > I should not do that here; it would cost my host too much money, I > fear. There shouldn't be any need to fear. It should be cheap to create a new repository that is suitable for pushing to Savannah. You shouldn't need to re-copy everything from Savannah; instead, you should be able to clone what you have locally, fix the cloned repository so that its master branch exactly matches Savannah's, apply your fixes to the cloned repository, and push them. If your working copy of the source is in /home/rms/src/emacs and it is in the master branch, you can do this: cd /home/rms/src git clone emacs emacs-new cd emacs-new git branch -m master master-old git branch --track master origin/master git checkout master git pull At this point, /home/rms/src/emacs will contain the old copy of Emacs with whatever glitches are causing problems for you, and /home/rms/src/emacs-new will contain a fresh new copy with a master branch that matches what's in Savannah and with another branch 'master-old' containing the last things you installed in the old copy. Only one step in the above recipe requires network access, the "git pull", and it should be pulling recent deltas so it should be cheap (and the deltas are necessary under any workflow). Once you've built the fresh new copy, you should be able to edit it, commit changes, and then do a "git push" (which will be the 2nd step that requires network access). ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:40 ` Stash Paul Eggert @ 2015-04-05 19:25 ` Harald Hanche-Olsen 2015-04-05 19:59 ` Stash Paul Eggert 2015-04-05 19:26 ` Stash Steinar Bang 1 sibling, 1 reply; 54+ messages in thread From: Harald Hanche-Olsen @ 2015-04-05 19:25 UTC (permalink / raw) To: Paul Eggert; +Cc: rms, emacs-devel Paul Eggert wrote: > Richard Stallman wrote: > If your working copy of the source is in /home/rms/src/emacs and it is > in the master branch, you can do this: > > cd /home/rms/src > git clone emacs emacs-new > cd emacs-new > git branch -m master master-old > git branch --track master origin/master > git checkout master > git pull Won't that make the new repository push to the old one? Then he will need to push twice, in separate repositories, to get stuff back on Savannah. – Harald ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 19:25 ` Stash Harald Hanche-Olsen @ 2015-04-05 19:59 ` Paul Eggert 0 siblings, 0 replies; 54+ messages in thread From: Paul Eggert @ 2015-04-05 19:59 UTC (permalink / raw) To: Harald Hanche-Olsen; +Cc: rms, emacs-devel Harald Hanche-Olsen wrote: > Won't that make the new repository push to the old one? True, sorry, I left out a step, which is to change the remote with "git remote set-url". Here's a revised step list: cd /home/rms/src git clone emacs emacs-new cd emacs-new git branch -m master master-old git remote set-url origin rms@git.sv.gnu.org:/srv/git/emacs.git git branch --track master origin/master git checkout master git pull ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 18:40 ` Stash Paul Eggert 2015-04-05 19:25 ` Stash Harald Hanche-Olsen @ 2015-04-05 19:26 ` Steinar Bang 2015-04-05 20:18 ` Stash Stephen J. Turnbull 1 sibling, 1 reply; 54+ messages in thread From: Steinar Bang @ 2015-04-05 19:26 UTC (permalink / raw) To: emacs-devel >>>>> Paul Eggert <eggert@cs.ucla.edu>: > If your working copy of the source is in /home/rms/src/emacs and it is > in the master branch, you can do this: > cd /home/rms/src > git clone emacs emacs-new > cd emacs-new > git branch -m master master-old > git branch --track master origin/master > git checkout master > git pull Note that the remote for emacs-new will be the local git repo "emacs", and not savannah, so I don't see what this buys you wrt. resolving conflicts...? ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 19:26 ` Stash Steinar Bang @ 2015-04-05 20:18 ` Stephen J. Turnbull 0 siblings, 0 replies; 54+ messages in thread From: Stephen J. Turnbull @ 2015-04-05 20:18 UTC (permalink / raw) To: Steinar Bang; +Cc: emacs-devel Steinar Bang writes: > Note that the remote for emacs-new will be the local git repo "emacs", > and not savannah, so I don't see what this buys you wrt. resolving > conflicts...? Adding git config branch.master.remote $URL_TO_SAVANNAH to Paul's instructions should do the trick. ^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: Stash 2015-04-05 17:42 Stash Richard Stallman 2015-04-05 18:31 ` Stash Steinar Bang 2015-04-05 18:40 ` Stash Paul Eggert @ 2015-04-05 19:41 ` Harald Hanche-Olsen 2 siblings, 0 replies; 54+ messages in thread From: Harald Hanche-Olsen @ 2015-04-05 19:41 UTC (permalink / raw) To: rms; +Cc: emacs-devel Richard Stallman wrote: > I don't have all the output. I had run git in a shell buffer a few > times, and it causes a lot of trouble about the terminal. So I started > running it in an ordinary terminal. To fix that, arrange set the environment variable GIT_PAGER to the empty string in the shell buffer. Or create an alias to run “git --no-pager” instead of git. > Fortunately it seems that all my changes did make it into Savannah. > So it is just a matter of how to get a clean repository. If “git status -s” produces no output, I see no reason not to run git reset --hard origin/master If it does produce output, you could do git commit -a -m 'Commited just in case' git branch badmaster HEAD git reset --hard origin/master Now everything in your repository should be just fine, except you might have some junk in the badmaster branch. (That was just in case there was important information there that you did not want to lose. If some time passes and you're confident you haven't lost anything, delete the badmaster branch.) – Harald ^ permalink raw reply [flat|nested] 54+ messages in thread
end of thread, other threads:[~2015-04-10 13:52 UTC | newest] Thread overview: 54+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-05 17:42 Stash Richard Stallman 2015-04-05 18:31 ` Stash Steinar Bang 2015-04-05 18:38 ` Stash Eli Zaretskii 2015-04-06 5:50 ` Stash Richard Stallman 2015-04-06 6:37 ` Stash Steinar Bang 2015-04-06 7:35 ` Stash Eli Zaretskii 2015-04-06 7:57 ` Stash Eli Zaretskii 2015-04-07 19:31 ` Stash Stephen J. Turnbull 2015-04-08 5:28 ` Stash Eli Zaretskii 2015-04-06 5:50 ` Stash Richard Stallman 2015-04-06 6:50 ` Stash Steinar Bang 2015-04-06 6:55 ` Stash Eli Zaretskii 2015-04-06 11:25 ` Stash Mathias Megyei 2015-04-06 11:30 ` Stash Eli Zaretskii 2015-04-06 11:56 ` Stash Yuri Khan 2015-04-06 12:06 ` Stash João Távora 2015-04-06 12:25 ` Stash Eli Zaretskii 2015-04-06 12:19 ` Stash Eli Zaretskii 2015-04-06 11:59 ` Stash João Távora 2015-04-06 12:21 ` Stash Eli Zaretskii 2015-04-06 13:06 ` Stash João Távora 2015-04-06 6:55 ` Stash Eli Zaretskii 2015-04-06 14:53 ` Stash Steinar Bang 2015-04-06 15:07 ` Stash Harald Hanche-Olsen 2015-04-06 18:48 ` Stash Steinar Bang 2015-04-06 5:51 ` Stash Richard Stallman 2015-04-06 7:29 ` Stash Eli Zaretskii 2015-04-06 7:55 ` Stash Harald Hanche-Olsen 2015-04-07 16:13 ` Stash Richard Stallman 2015-04-07 16:48 ` Stash Eli Zaretskii 2015-04-07 19:51 ` Stash Stephen J. Turnbull 2015-04-08 18:20 ` Stash Richard Stallman 2015-04-08 18:21 ` Stash Richard Stallman 2015-04-08 18:33 ` Stash Eli Zaretskii 2015-04-09 13:16 ` Stash Richard Stallman 2015-04-09 13:45 ` Stash Eli Zaretskii 2015-04-10 10:57 ` Stash Richard Stallman 2015-04-08 18:21 ` Stash Richard Stallman 2015-04-07 16:58 ` Stash Andreas Schwab 2015-04-08 18:21 ` Stash Richard Stallman 2015-04-09 17:07 ` Stash Andreas Schwab 2015-04-10 10:58 ` Stash Richard Stallman 2015-04-07 20:12 ` Stash Stephen J. Turnbull 2015-04-09 13:16 ` Stash Richard Stallman 2015-04-09 16:53 ` Stash Stephen J. Turnbull 2015-04-10 10:58 ` Stash Richard Stallman 2015-04-10 11:18 ` Stash Eli Zaretskii 2015-04-10 13:52 ` Stash Stephen J. Turnbull 2015-04-05 18:40 ` Stash Paul Eggert 2015-04-05 19:25 ` Stash Harald Hanche-Olsen 2015-04-05 19:59 ` Stash Paul Eggert 2015-04-05 19:26 ` Stash Steinar Bang 2015-04-05 20:18 ` Stash Stephen J. Turnbull 2015-04-05 19:41 ` Stash Harald Hanche-Olsen
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).