From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Olson Newsgroups: gmane.emacs.devel,gmane.emacs.auctex.devel Subject: Ways of keeping Emacs 22 and external projects in sync (was: CVS repository synchronization for RefTeX) Date: Mon, 01 Jan 2007 02:09:09 -0500 Message-ID: <87slev5ilm.fsf_-_@hariken.mwolson.org> References: <87k60b7hv5.fsf@neutrino.caeruleus.net> <85irftmi8p.fsf@lola.goethe.zz> <87k60b7hv5.fsf@neutrino.caeruleus.net> <87sley46bb.fsf@neutrino.caeruleus.net> <87mz554e1u.fsf@neutrino.caeruleus.net> <20061231222721.GA1424@kobe.laptop> <87fyav1uwb.fsf@neutrino.caeruleus.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1873876256==" X-Trace: sea.gmane.org 1167638928 30348 80.91.229.12 (1 Jan 2007 08:08:48 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Mon, 1 Jan 2007 08:08:48 +0000 (UTC) Cc: auctex-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 01 09:08:47 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1H1IDr-0000jf-Cr for ged-emacs-devel@m.gmane.org; Mon, 01 Jan 2007 09:08:43 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1H1IDq-0001Zm-U2 for ged-emacs-devel@m.gmane.org; Mon, 01 Jan 2007 03:08:42 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1H1IDb-0001Yk-46 for emacs-devel@gnu.org; Mon, 01 Jan 2007 03:08:27 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1H1IDa-0001XJ-5H for emacs-devel@gnu.org; Mon, 01 Jan 2007 03:08:26 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1H1IDZ-0001X3-SH for emacs-devel@gnu.org; Mon, 01 Jan 2007 03:08:25 -0500 Original-Received: from [80.91.229.2] (helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1H1IDZ-0003Tn-2p for emacs-devel@gnu.org; Mon, 01 Jan 2007 03:08:25 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1H1IDT-0002ZF-OX for emacs-devel@gnu.org; Mon, 01 Jan 2007 09:08:19 +0100 Original-Received: from pool-71-115-65-244.sbndin.dsl-w.verizon.net ([71.115.65.244]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 01 Jan 2007 09:08:19 +0100 Original-Received: from mwolson by pool-71-115-65-244.sbndin.dsl-w.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 01 Jan 2007 09:08:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-To: emacs-devel@gnu.org Original-Lines: 146 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: pool-71-115-65-244.sbndin.dsl-w.verizon.net Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEU1QytIVTlZY0dqc1N6 hGGJl3qZpZCtuKXsjxzFAAACW0lEQVR42l2UXXrqIBCGk67Aoe29Ac4CTPDcGwZ73wLdQDOuQLP9 8wHG9hT1Mc6bb/5jp7Xed92TVrqeCYfKRVc+XdfDbqbJ8TixG1UDu2a3xkf2H+z+A6Qn7Xk71AA8 kdJmZg4xpcTshgr2JQSurAswhwDFYQN9r4yxx1BIQqBTBbvqahw9hxRSLOBdFVA89TTOvgSoMaLf ABTWOg5Z8lLRNyD7x4WSVHU1DZurThn2HI9Oa561JhTSDUWxq64YqRlmrcdhA73y3rmJY1okotDT NzDO2XNGZPnS7A4b6NQ8foQFN2eJmEBR7Du1Q/DRh7R4O50BrGmu0F8i49Iya+ScvtDNqkADB8zD pwU9wTu9c8msdNYOO0JvYYyREd9xBOh7zSNc2WMZUYzIDHOpU0Kxe5o9o0eccsr5mNLcwHhC8DoM SQkJ5wbUxAdlbDELEpDbclc8sT2gV2HJIrj/si7hDgzPpY4sqxTV+pWkgt7EGesDIFWUnGuK7pkn erZoieCVZPGcG3jCJimLwS7IVZY4R3mvoNfzoCfOF0mIG1nna+TadAxzgF5u0b3JTaxcmZtCF1dn WSOv63oNl4U3BQCLXOQKWZIHUBWcUci6iuTL7eMOelVAKfp+NkA0kOElN3BbV26AiGZsXEqfa0EQ NtATvTAKCeHh7AEEi4knM6S3HwB2eo1zeZQ5fDbgNkCpbEwh8HUTqYDqwUhIG2NQ/k2WH+CVB9LK aINy0EeAvgF6KRK0wIaPiX8CioRNpQF7X/8EOnoAPpUvrX8DED7t8B/Bv8ErfnpSfxv4B9rx7BDd lxXRAAAAAElFTkSuQmCC Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEU5PGZjaJdxc4yUlqqY n8mussPO0+fz9fiiiYhWAAACdklEQVQ4y42SwXfaMAzG7azb2e78OCcK0GvnEHaNW+NeV0Lg2kJi 39vh/PuTEqDt2/re8iAH/aRP+hSx/pOH/QcIMX4Gev8PQPnBh79APJXsPoJIQXyF4D+AQEHfNXVZ ls17EGOIvmmasiiKvHwDEZ/uHAdYvpMKlF/XGM9zyMMZHGPAeFEP+QXonxepvmtK0im0hpmG+ZtU XVK+xjhAoy8gdkM6gnyGWuubMwiYTRUAOaxhVlx6HIuCSnSuQVP7y1QHjUATwCZTuL+AAoYGBQLI 1EwtzyDHSTQ5W5tFnqnpeaoIeQNYUM/20+y6yuQqjOAI+R5Aw3d3uGPsNs0UfS8Er/CFjCWw8/sk T9Mr6/wA6oyiSV77fs1mmnFruzD0SNEYsCT04SUpfyUIVrthqhdWohYpv8L2KeHO7U7OocYeQLPo 5RpB+zACv9hAdbccTyXl0nmHoOu6jW1M5QJW7PoACBwBlIuPE/M4wQPqt+gWwaoYwW+T/DATT0qx E1IO98i2fd8By6zyng5sb7g5gejbKk0RDBXTils/rKRoNkaKysqhYm8lAR/GcY2ojLR0vlwZ7uyi KEdgJRPKrUJ8YqriDzTdsKvWpExI1+U147Ji2GwEfUsV8iF0KZMk5f2SnG83VinB5LKPr1xi8xPA EXAsyXBD/UFKW0m7WpW7wXlrlWRcxXg0yporN55PSc0FfmwuF5a7hcTSwTnaMdK1jBHi3wIaIqsI Wmvm/iklwh5ltOq0kpWVX725FoyLZN6Kg1SttfeNZ320Dargj4vJszCZutlY+lC40OaWMUFItVgn 53vvaIlHH28r1Bf4RztMzJ7tJPR/AOaOXzwHjeudAAAAAElFTkSuQmCC User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.91 (gnu/linux) Cancel-Lock: sha1:RC8eU9m55L/7BAkXxmqpW/CzfuM= X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:64597 gmane.emacs.auctex.devel:1492 Archived-At: --===============1873876256== Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" --=-=-= Content-Transfer-Encoding: quoted-printable Ralf Angeli writes: > * Giorgos Keramidas (2006-12-31) writes: > >> The people who currently maintain cc-mode and Gnus may have useful >> feedback, regarding the tools they use for the job. Do you think >> it's a good idea to ask them and see what they have to say about >> the best way to merge RefTeX source-drops with the CVS tree of >> Emacs and keep merging updates, as they are committed to a separate >> RefTeX repository? > > Well, I was hoping for some of them to chip into this thread. I guess I'll chip in with how I manage to keep the development version of ERC synced with that included with Emacs 22. Gnus does it slightly different than I do, because they merge directly to Emacs 22, rather than using an intermediary branch like I do. I use GNU Arch to maintain ERC. Among the various branches are these: erc--main--0 :: Where development happens erc--rel--5.1 :: Where the currently previous major release (5.1) gets updated when it is time to prepare a minor release. erc--emacs--22 :: The branch which is used to sync to and from the version in Emacs 22. emacs--devo--0 :: The equivalent of CVS HEAD for Emacs in Arch, kept in sync by Miles Bader. * Preparation When preparing the Emacs 22 version of ERC for the first time, I added explicit Arch tags to all of the files which would be included with Emacs 22. Namely: all .el files that don't depend on anything outside of the Emacs source tree, NEWS (renamed etc/ERC-NEWS in Emacs 22), ChangeLog, and the manual. This way, even if the files are in different directories, Arch can sort them out. I then set up a couple of scripts (in a scripts/ directory that only exists in the erc--emacs--22 branch) that help me sync to and from the Emacs 22 source tree. common.defs: =3D=3D=3D # Common definitions for syncing ERC -*- Shell-script -*- EMACS=3D~/proj/emacs/emacs ETC=3D$EMACS/etc LISP=3D$EMACS/lisp MAN=3D$EMACS/man =3D=3D=3D sync-from-emacs: =3D=3D=3D #!/bin/bash # Load common definitions . scripts/common.defs (cd $LISP/erc && find . -maxdepth 1 -mindepth 1 -type f -exec cp {} $OLDPWD= \;) cp $ETC/ERC-NEWS etc/ cp $MAN/erc.texi man/ rm -f *.elc =3D=3D=3D sync-to-emacs: =3D=3D=3D #!/bin/bash # Load common definitions . scripts/common.defs (cd $LISP/erc && find . -maxdepth 1 -mindepth 1 -type f -exec cp {} $OLDPWD= \;) cp $ETC/ERC-NEWS etc/ cp $MAN/erc.texi man/ rm -f *.elc =3D=3D=3D * Syncing changes When there are some changes that need to be propagated to Emacs 22, I first check emacs--devo--0 to see if someone changed things on the Emacs side, by running ./scripts/sync-from-emacs. If anything is different than the current contents of erc--emacs--22, I immediately check them in (to erc--emacs--22). Then, I apply the necessary changes from erc--main--0. Once all of the conflicts have been resolved, I check in the code and run ./scripts/sync-to-emacs. I then check to see whether Emacs still compiles. Depending on how large the changes are, I may test them. Then, if changes were made to files outside of lisp/erc in the Emacs tree, I add log entries for them in their respective directories. That done, I check the changes in to emacs--devo--0 with a brief log entry. * Closing thoughts on related subjects I think it is unrealistic to expect that large, active projects which are included with Emacs 22 use the Emacs source tree for their main development area. It makes much more sense for such projects to just merge in critical updates and new releases. It also makes rapid development easier, because operations on the revision control system of choice take significantly more time on the entire Emacs tree as compared to just the files of the individual project. I also think it is a very bad idea for Emacs developers to mandate checking in files individually. It might make sense for work on the core files in lisp/emacs-lisp/ or the top-level of lisp/, but a significant percentage of changes made to the other lisp files involve changing several files at once. Separating log entries for commit messages begins to become a burden. For operations such as updating an entire project, this would become very tedious (not to mention unnecessary, because ChangeLog contains all the information that is really needed). With Arch, such changes are treated as a single change to the entire project, rather than multiple separate changes to single files. There is no possibility (however remote) of changes to several files being only partially applied, as long as Arch is the only version control system involved. =2D-=20 Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/ Interests: Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net /` |\ | | | Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC |_] | \| |_| Reclaim your digital rights by eliminating DRM. See http://www.defectivebydesign.org/what_is_drm for details. --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFFmLOk+1Ho2POo0xkRAt0qAJ9jtiSJSz3RLK2ZC6+wdhZJI3alLgCeJ0pO J83IQ+/cbNzK6YRMHJ03xEI= =N0m4 -----END PGP SIGNATURE----- --=-=-=-- --===============1873876256== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --===============1873876256==--