emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: Michael Olson <mwolson@gnu.org>
Cc: emacs-orgmode@gnu.org
Subject: Re: Re: Git org and Emacs CVS
Date: Tue, 29 Apr 2008 07:17:12 +0200	[thread overview]
Message-ID: <4DFCF41F-CDE7-42CB-AA67-CF5223909ED1@science.uva.nl> (raw)
In-Reply-To: <87prtkya6g.fsf@grepfind.mwolson.org>

Just did my first sync-from-emacs, seems to have gone all right!

Thanks.

- Carsten

On Mar 24, 2008, at 6:15 AM, Michael Olson wrote:

> Carsten Dominik <dominik@science.uva.nl> writes:
>
>> Hi Leo,
>>
>> synching with Emacs still needs special care and I am not yet
>> experienced enough with git to set up something more automatic.  So
>> not, this will not change anything.
>
> Hi Carsten,
>
> git does indeed make it easy to merge changes between Emacs 23 and an
> upstream project.  I use it for ERC.  One strategy is as follows:
>
> - Make a branch called "emacs23" which contains Org exactly as it is  
> in
>  Emacs23, but with the same directory structure as your master
>  branch.
> - Make a directory called "scripts" in the emacs23 branch that  
> contains
>  two scripts: one to sync changes from Emacs->upstream and one to sync
>  upstream->Emacs.  Both operate by copying files into the proper place
>  in the Emacs directory hierarchy.  Here are some examples -- modify
>  them to match Org's layout and such.
>
> ===== BEGIN file: sync-to-emacs =====
> #!/bin/bash
>
> # Load common definitions
> . scripts/common.defs
>
> IFS="
> "
>
> for i in $LISP; do
>   cp $i $EMACS/lisp/erc
> done
>
> for i in $MAN; do
>   cp $i $EMACS/doc/misc
> done
>
> for i in $IMAGES; do
>   # Do nothing
>   :
> done
>
> cp ChangeLog* $EMACS/lisp/erc
> cp $NEWS $EMACS/etc/ERC-NEWS
> ===== END file: sync-to-emacs =====
>
> ===== BEGIN file: sync-from-emacs =====
> #!/bin/bash
>
> # Load common definitions
> . scripts/common.defs
>
> (cd $EMACS/lisp/erc && find . -maxdepth 1 -mindepth 1 -type f -exec  
> cp {} $OLDPWD \;)
> cp $EMACS/etc/ERC-NEWS NEWS
> cp $EMACS/doc/misc/erc.texi .
> rm -f *.elc .cvsignore
> git diff --stat
> ===== END file: sync-from-emacs =====
>
> ===== BEGIN file: common.defs =====
> # Common definitions for syncing ERC             -*- Shell-script -*-
>
> EMACS=~/proj/emacs/emacs/git-emacs
>
> # Contents
>
> IMAGES="images/icq-offline.png
> images/icq-online.png
> images/irc-offline.png
> images/irc-online.png
> images/msn-offline.png
> images/msn-online.png"
>
> NEWS="NEWS"
>
> LISP="erc-autoaway.el
> erc-backend.el
> erc-button.el
> erc-capab.el
> erc-compat.el
> erc-dcc.el
> erc-ezbounce.el
> erc-fill.el
> erc-goodies.el
> erc-hecomplete.el
> erc-ibuffer.el
> erc-identd.el
> erc-imenu.el
> erc-join.el
> erc-lang.el
> erc-list.el
> erc-log.el
> erc-match.el
> erc-menu.el
> erc-netsplit.el
> erc-networks.el
> erc-notify.el
> erc-page.el
> erc-pcomplete.el
> erc-replace.el
> erc-ring.el
> erc-services.el
> erc-sound.el
> erc-speedbar.el
> erc-spelling.el
> erc-stamp.el
> erc-track.el
> erc-truncate.el
> erc-xdcc.el
> erc.el"
>
> MAN="erc.texi"
> ===== END file: common.defs =====
>
> Some scenarios follow.
>
> * Capturing changes from Emacs in the emacs23 branch
>
> - Switch to the emacs23 branch: git checkout emacs23
> - Run the relevant sync script: ./scripts/sync-from-emacs
> - Use "git add -i" to commit small concise atomic changes until all
>  changes have been recorded.  Optionally use the --author argument to
>  "git commit" to capture the name of the author of the original
>  changes.
>
> * Syncing changes from Emacs to upstream Org
>
> - First do the capturing changes into emacs23 step.
> - Run "git log" and place its contents into an Emacs buffer.
> - git checkout master
> - Cherry pick each commit from emacs23 that you want to migrate
>  upstream by copying its commit ID from the Emacs buffer and doing:
>  git cherry-pick $COMMIT_ID
>
> * Syncing changes to Emacs
>
> - First do the syncing changes from Emacs step.
> - Then switch to the emacs23 branch: git checkout emacs23
> - Do a simple "git merge master".
> - Resolve any conflicts.
> - If new files were added, modify scripts/sync-to-emacs to include
>  them.
> - Run the sync-to-emacs script: ./scripts/sync-to-emacs
> - Check in the changes to Emacs using CVS.  Or use git, checking in  
> the
>  change locally and then doing "git cvsexportcommit" to migrate that
>  change to CVS.  The latter option requires commit access to CVS and
>  use of the read-only public Emacs git repo at http://git.sv.gnu.org/
>  (not much point to it, other than to automate contact with CVS as
>  much as possible :^)
>
> -- 
> |       Michael Olson  |  FSF Associate Member #652     |
> | http://mwolson.org/  |  Hobbies: Lisp, HCoop          |
> | Projects: Emacs, Muse, ERC, EMMS, ErBot, DVC, Planner |
> `-------------------------------------------------------'
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2008-04-29  5:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-06 17:32 Git org and Emacs CVS Leo
2008-02-07  9:41 ` Carsten Dominik
2008-03-24  5:15   ` Michael Olson
2008-04-29  5:17     ` Carsten Dominik [this message]
2008-04-29  5:43       ` Michael Olson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DFCF41F-CDE7-42CB-AA67-CF5223909ED1@science.uva.nl \
    --to=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    --cc=mwolson@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).