+git config --global transfer.fsckObjects true
+
+(See the thread "Recommend these .gitconfig settings for git integrity."
+[https://lists.gnu.org/archive/html/emacs-devel/2016-01/threads.html#01802]
+for more details about why that last line is there.)
-git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git
-mv emacs trunk
-(cd trunk; git config push.default current)
-./trunk/admin/git-new-workdir trunk emacs-24
-cd emacs-24
-git checkout emacs-24
-git config push.default current
+git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master
+(cd master; git config push.default current)
+./master/admin/git-new-workdir master emacs-25
+cd emacs-25
+git checkout emacs-25
You now have both branches conveniently accessible, and you can do
"git pull" in them once in a while to keep updated.
You now have both branches conveniently accessible, and you can do
"git pull" in them once in a while to keep updated.
changes. Then you need to push the data to the main repository. This
will usually fail, since somebody else has pushed other changes in the
meantime. To fix this, say
changes. Then you need to push the data to the main repository. This
will usually fail, since somebody else has pushed other changes in the
meantime. To fix this, say
-If you have applied a fix to the trunk, but then decide that it should
-be applied to the emacs-24 branch, too, then
+If you have applied a fix to the master, but then decide that it should
+be applied to the emacs-25 branch, too, then
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
and add "Backport:" to the commit string. Then
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
and add "Backport:" to the commit string. Then
things which would otherwise have to be done manually, like ignoring
commits that should not land in master, fixing up ChangeLogs and
automatically dealing with certain types of conflicts. If you really
want to, you can do the merge manually, but then you're on your own.
If you still choose to do that, make absolutely sure that you *always*
things which would otherwise have to be done manually, like ignoring
commits that should not land in master, fixing up ChangeLogs and
automatically dealing with certain types of conflicts. If you really
want to, you can do the merge manually, but then you're on your own.
If you still choose to do that, make absolutely sure that you *always*
'master'. *Never* use 'cherry-pick'! If you don't know why, then you
shouldn't manually do the merge in the first place; just use
gitmerge.el instead.
'master'. *Never* use 'cherry-pick'! If you don't know why, then you
shouldn't manually do the merge in the first place; just use
gitmerge.el instead.
emacs -l admin/gitmerge.el -f gitmerge
You'll be asked for the branch to merge, which will default to
emacs -l admin/gitmerge.el -f gitmerge
You'll be asked for the branch to merge, which will default to
branch is discouraged, since it might not be up-to-date, or worse,
contain commits from you which are not yet pushed upstream.
branch is discouraged, since it might not be up-to-date, or worse,
contain commits from you which are not yet pushed upstream.
merged to 'master'. You might also see commits that are already
marked for "skipping", which means that they will be merged with a
different merge strategy ('ours'), which will effectively ignore the
merged to 'master'. You might also see commits that are already
marked for "skipping", which means that they will be merged with a
different merge strategy ('ours'), which will effectively ignore the