gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] Re: darcs vs tla


From: John A Meinel
Subject: Re: [Gnu-arch-users] Re: darcs vs tla
Date: Thu, 11 Nov 2004 12:17:27 -0600
User-agent: Mozilla Thunderbird 0.9 (Windows/20041103)

John Goerzen wrote:
On Thu, Nov 11, 2004 at 12:10:06PM -0500, Aaron Bentley wrote:

John Goerzen wrote:
Hmm. I wonder if there might be even better ways to support this use case in Arch.

Is it the repository that's useful or the fact that you can commit? It certainly seems conceivable to have a commit-style command that would transparently create a local version of the upstream branch in your archive on the first commit.


It's committing, and having everything preserved.  With Arch, it's:

1. A lot of work to tag something to a local repo, do all of that crap,
then merge it back later, and finally commit it back later

2. This approach loses the diffs for each individual commit that was
done, at least in the master repository.

-- John


Is this true if you have the command branch-this (or fork, or whatever you want to call it.) and then another simple script to do pure-merges back to the main tree?

The second is just a script, I think the one I just attached would do just what you want. You start in the main tree, it checks against the local tree for missing patches, and then applies them one at a time. It also should keep the log summary and other headers intact (and add some merge text.)

John
=:->



#!/bin/bash
# $1 is the local package
# $2 is the main package, if not supplied the current directory will be used.

testmode='false';

if [ -n "$2" ]; then
        tla get $2 main
        cd main
fi

for p in `tla missing -f $1`; do
  tla star-merge $p
  logfile=`tla make-log`
  printing=''
  tla cat-archive-log $p | while read f; do
    if [ -n "$printing" ]; then
      echo $f >> $logfile
    fi
    if [ -n "$(echo $f | grep ^Summary:)" ]; then
      printing='true'
      echo $f > $logfile
    fi
  done
  tla log-for-merge >> $logfile

  if [ "$testmode" = "true" ]; then
          echo "Not committing..."
          cat $logfile
          tla undo
          rm -f $logfile
  else
      tla commit
  fi

done

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]