# [TopGit PATCH] Use the topological order when exporting explicitly listed branches.

3 messages from 2008-11-20 to 2008-11-20. Participants: martin f. krafft, Petr Baudis, martin f krafft.
Thread: https://gitlist.dev/t/16405

## martin f. krafft, 2008-11-20 09:38

Subject: [TopGit PATCH] Use the topological order when exporting explicitly listed branches.
Message-ID: <1227173902-21180-1-git-send-email-madduck@debian.org>
URL: https://gitlist.dev/e/1227173902-21180-1-git-send-email-madduck%40debian.org

```
From: Niko Tyni <ntyni@debian.org>

When exporting explicitly listed branches (tg export -b), the branch
dependencies were not taken into account.

Signed-off-by: martin f. krafft <madduck@debian.org>
Tested-by: martin f. krafft <madduck@debian.org>
---
Arguably, lines 178:189 need to be refactored due to the code duplication, but
the patch does what it should for now.

 tg-export.sh |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tg-export.sh b/tg-export.sh
index 52af88d..037b991 100644
--- a/tg-export.sh
+++ b/tg-export.sh
@@ -181,9 +181,9 @@ if [ -z "$branches" ]; then
 	recurse_deps driver "$name"
 	(_ret=0; _dep="$name"; _name=""; _dep_is_tgish=1; driver)
 else
-	echo "$branches" | tr ',' '\n' | while read _dep; do
-		_dep_is_tgish=1
-		$driver
+	echo "$branches" | tr ',' '\n' | while read name; do
+		recurse_deps driver "$name"
+		(_ret=0; _dep="$name"; _name=""; _dep_is_tgish=1; driver)
 	done
 	name="$(echo "$branches" | sed 's/.*,//')"
 fi
-- 
1.5.6.5

```

## Petr Baudis, 2008-11-20 10:20

Subject: Re: [TopGit PATCH] Use the topological order when exporting explicitly listed branches.
Message-ID: <20081120102005.GB10491@machine.or.cz>
URL: https://gitlist.dev/e/20081120102005.GB10491%40machine.or.cz
In-Reply-To: <1227173902-21180-1-git-send-email-madduck@debian.org>

```
On Thu, Nov 20, 2008 at 10:38:22AM +0100, martin f. krafft wrote:
> From: Niko Tyni <ntyni@debian.org>
> 
> When exporting explicitly listed branches (tg export -b), the branch
> dependencies were not taken into account.
> 
> Signed-off-by: martin f. krafft <madduck@debian.org>
> Tested-by: martin f. krafft <madduck@debian.org>
> ---
> Arguably, lines 178:189 need to be refactored due to the code duplication, but
> the patch does what it should for now.

The point of -b is to export only the specified branches, assuming you
already exported the dependencies before. If you just want to export a
branch with all its dependencies, why not just switch to it and call
plain tg export?

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

```

## martin f krafft, 2008-11-20 10:54

Subject: Re: [TopGit PATCH] Use the topological order when exporting explicitly listed branches.
Message-ID: <20081120105432.GB21374@piper.oerlikon.madduck.net>
URL: https://gitlist.dev/e/20081120105432.GB21374%40piper.oerlikon.madduck.net
In-Reply-To: <20081120102005.GB10491@machine.or.cz>

```
also sprach Petr Baudis <pasky@suse.cz> [2008.11.20.1120 +0100]:
> The point of -b is to export only the specified branches, assuming you
> already exported the dependencies before. If you just want to export a
> branch with all its dependencies, why not just switch to it and call
> plain tg export?

Ah, I see. I think then I probably failed to communicate what I had
in mind with -b, which was mainly to avoid use of a temporary
branch where to collapse all commits before creating a series.

I don't see the point of being able to export patches into a quilt
series without their dependencies. If needed, one could use tg-patch
for that. The only difference between tg-export -b and tg-patch is
that the former can do multiple patches in one go, and it writes
a series file. Since that series is not guaranteed to be applicable,
I think one could just not bother.

Thinking about it a bit more, I think tg-export should be modified
such that it can always take -b/--branches, which defaults to the
current branch. No matter what the driver, it always prepends the
dependencies to the list. Then, the list is passed to the export
driver. 'collapse' creates a branch as it does right now, and
'quilt' creates a series as it does right now.

I have most of this implemented in a branch which I'll gladly
publish as soon as I figured out some remaining corner cases.

-- 
 .''`.   martin f. krafft <madduck@debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems
 
"zum christentum wird man nicht geboren,
 man muß dazu nur krank genug sein."
                                                 - friedrich nietzsche

```
