[devel] Q: .gear-rules и "апстримные" сорцы в отдельном бранче

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_immo=2Eru?=
Вт Июн 20 20:09:45 MSD 2006


* Alexey I. Froloff <raorn@> [060620 19:26]:
> Таким образом получается что у нас "скачет" $tree_id.  Это совсем
> бредовая идея или можно начинать готовить патч? ;-)
Патч на tar* оказался тривиальным, но не могу придумать описание
этой опции.  У diff* синтаксис будет аналогичный.

А можно не пользоваться diff*, а периодически сваливать
результаты git-format-patch в отдельный каталог (после
git-rebase) и эти патчи накладывать в спеке.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
From nobody Mon Sep 17 00:00:00 2001
From: Sir Raorn <raorn на altlinux.ru>
Date: Tue, 20 Jun 2006 20:04:53 +0400
Subject: [PATCH] branch=branch_name parameter for tar command.

With this option it is possible to keep unmodified upstream
sources in another branch with help of git-cvsimport, git-svn,
git-svnimport, git-pull and so on.

Signed-off-by: Sir Raorn <raorn на altlinux.ru>

---

 gear |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

65871a4ac82d1fde66d3d2a724ce460334bf3504
diff --git a/gear b/gear
index b113ce4..063e152 100755
--- a/gear
+++ b/gear
@@ -38,6 +38,7 @@ #    name=archive_name  - tar archive na
 #    base=base_name     - when specified it is added as a leading path
 #                         to the files in the generated tar archive.
 #    spec=path_to_file  - path to specfile which defines keywords;
+#    branch=branch_name - when specified sets [WRITEME]
 #  Valid tar keywords are:
 #    @dir@ - basename(path_to_directory);
 #    @name@, @version@, @release на .
@@ -330,6 +331,8 @@ get_tar_name()
 	# Special non-empty marker.
 	tar_base=' '
 
+	tar_tree="$tree_id"
+
 	local opt quoted spec= spec_name= spec_version= spec_release=
 
 	for opt; do
@@ -341,6 +344,9 @@ get_tar_name()
 				;;
 			base=*) tar_base="${opt#base=}"
 				;;
+			branch=*)
+				tar_tree="${opt#branch=}"
+				;;
 			*) rules_error "Unrecognized option: $opt"
 				;;
 		esac
@@ -359,6 +365,7 @@ get_tar_name()
 	subst_keywords tar_name "$dir" "$spec_name" "$spec_version" "$spec_release"
 	[ -z "$tar_base" -o "$tar_base" = ' ' ] ||
 		subst_keywords tar_base "$dir" "$spec_name" "$spec_version" "$spec_release"
+	subst_keywords tar_tree "$dir" "$spec_name" "$spec_version" "$spec_release"
 }
 
 make_tar()
@@ -374,16 +381,18 @@ make_tar()
 	shift
 	[ "$tar_base" != ' ' ] ||
 		tar_base="$name"
+	tar_tree="$1"
+	shift
 
 	local id
 	if [ "$dir" = . ]; then
-		id="$tree_id"
+		id="$tar_tree"
 	else
 		local dir_name base_name quoted
 		dir_name="$(dirname -- "$dir")"
 		base_name="$(basename -- "$dir")"
 		# modifies $tree
-		traverse_tree "$tree_id" "$dir_name" ||
+		traverse_tree "$tar_tree" "$dir_name" ||
 			return 0
 		quoted="$(quote_sed_regexp "$base_name")"
 		id="$(git-ls-tree "$tree" "$base_name" |
@@ -424,7 +433,7 @@ make_archive()
 	check_path dirname "$dir_name"
 
 	get_tar_name "$(basename -- "$dir_name")" "$@"
-	make_tar "$cmd" "$dir_name" "$tar_name" "$tar_base"
+	make_tar "$cmd" "$dir_name" "$tar_name" "$tar_base" "$tar_tree"
 }
 
 copy_by_pattern()
-- 
1.3.3

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060620/6b8e62ed/attachment-0001.bin>


Подробная информация о списке рассылки Devel