Make gbp-create-remote-repo a first class citizen
authorGuido Günther <agx@sigxcpu.org>
Mon, 10 Jan 2011 15:09:05 +0000 (16:09 +0100)
committerGuido Günther <agx@sigxcpu.org>
Tue, 11 Jan 2011 06:47:13 +0000 (07:47 +0100)
Add manpage, move into path, add bash completion

14 files changed:
.gitignore
debian/control
debian/git-buildpackage.bash-completion
debian/rules
docs/chapters/import.sgml
docs/common.ent
docs/man.gbp-create-remote-repo.sgml [new file with mode: 0644]
docs/manpages/gbp-create-remote-repo.sgml [new file with mode: 0644]
docs/manpages/manpages.ent
docs/manual.sgml
gbp-create-remote-repo [moved from examples/gbp-create-remote-repo with 97% similarity]
gbp.conf
gbp/config.py
setup.py

index 16c4a91..9b61fc8 100644 (file)
@@ -3,6 +3,7 @@ gbp/gbp_version.py
 gbp-clone.py
 gbp-pq.py
 gbp-pull.py
+gbp-create-remote-repo.py
 git-buildpackage.py
 git-dch.py
 git-import-dsc.py
index 8fcd5c5..b08a2ef 100644 (file)
@@ -26,3 +26,4 @@ Description: Suite to help with Debian packages in Git repositories
   * git-dch: generate Debian changelog entries from Git commit messages
   * gbp-{pull,clone}: clone and pull from remote repos
   * gbp-pq: manage debian/patches easily
+  * gbp-create-remote-repo: create remote repositories
index 1b85504..fda633e 100644 (file)
@@ -155,3 +155,14 @@ _gbp_clone ()
     _gbp_comp "$options" "$branch_opts" "$tag_opts" "$tristate_opts"
 }
 [ "${have:-}" ] && complete -F _gbp_clone -o default gbp-clone
+
+have gbp-create-remote-repo &&
+_gbp_create_remote_repo ()
+{
+    local options=$(_gbp_options gbp-create-remote-repo)
+    local branch_opts="--debian-branch\= --upstream-branch\="
+    local tristate_opts="--color\="
+
+    _gbp_comp "$options" "$branch_opts" "" "$tristate_opts"
+}
+[ "${have:-}" ] && complete -F _gbp_create_remote_repo -o default gbp-create-remote-repo
index ab675e6..63c60c4 100755 (executable)
@@ -13,18 +13,18 @@ COMMANDS = git-buildpackage  \
            git-dch           \
            gbp-pull          \
            gbp-clone         \
-           gbp-pq
+           gbp-pq            \
+           gbp-create-remote-repo
 
 EXAMPLE_SCRIPTS=\
     gbp-add-patch          \
     gbp-cowbuilder-sid     \
     gbp-pbuilder           \
-    gbp-posttag-push       \
-    gbp-create-remote-repo
+    gbp-posttag-push
 
 DEB_COMPRESS_EXCLUDE=$(EXAMPLE_SCRIPTS)
 
-SGML_MANPAGES=$(patsubst %,docs/%.1,$(COMMANDS) gbp-pq)
+SGML_MANPAGES=$(patsubst %,docs/%.1,$(COMMANDS))
 POD_MANPAGES=docs/git-pbuilder.1
 MANPAGES=$(SGML_MANPAGES) $(POD_MANPAGES)
 MANUAL=docs/manual-html
index 079ea33..cbb8804 100644 (file)
@@ -168,6 +168,6 @@ EOF
 &git-import-orig; <option>-u</option> <replaceable>0.1</replaceable> <filename>../package-0.1.tar.gz</filename>
 <command>dh_make</command>
     </screen>
-    That's it, you're done.
+    That's it, you're done. If you want to publish you're new repository you can use &gbp-create-remote-repo;.
     </sect1>
 </chapter>
index 19fbd44..8a7e3e2 100644 (file)
@@ -11,6 +11,7 @@
   <!ENTITY gbp-pull            "<command>gbp-pull</command>">
   <!ENTITY gbp-clone           "<command>gbp-clone</command>">
   <!ENTITY gbp-pq              "<command>gbp-pq</command>">
+  <!ENTITY gbp-create-remote-repo "<command>gbp-create-remote-repo</command>">
   <!ENTITY gitcmd              "<command>git</command>">
   <!ENTITY gitkcmd             "<command>gitk</command>">
   <!ENTITY pbuildercmd         "<command>pbuilder</command>">
diff --git a/docs/man.gbp-create-remote-repo.sgml b/docs/man.gbp-create-remote-repo.sgml
new file mode 100644 (file)
index 0000000..f46421a
--- /dev/null
@@ -0,0 +1,11 @@
+<!DOCTYPE reference PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+  <!ENTITY % COMMON SYSTEM "common.ent">
+  %COMMON;
+  <!ENTITY % MANPAGES SYSTEM "manpages/manpages.ent">
+  %MANPAGES;
+]>
+
+<reference>
+<title>git-buildpackage Manual</title>
+&man.gbp.create.remote.repo;
+</reference>
diff --git a/docs/manpages/gbp-create-remote-repo.sgml b/docs/manpages/gbp-create-remote-repo.sgml
new file mode 100644 (file)
index 0000000..a68b74d
--- /dev/null
@@ -0,0 +1,125 @@
+<refentry id="gbp.man.gbp.create.remote.repo">
+  <refentryinfo>
+    <address>
+      &dhemail;
+    </address>
+    <author>
+      &dhfirstname;
+      &dhsurname;
+    </author>
+  </refentryinfo>
+  <refmeta>
+   <refentrytitle>gbp-create-remote-repo</refentrytitle>
+    &dhsection;
+  </refmeta>
+  <refnamediv>
+    <refname>&gbp-create-remote-repo;</refname>
+
+    <refpurpose>Create remote repositories</refpurpose>
+  </refnamediv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      &gbp-create-remote-repo;
+      <arg><option>--verbose</option></arg>
+      <arg><option>--color=</option><replaceable>[auto|on|off]</replaceable></arg>
+      <arg><option>--remote-url-pattern=</option><replaceable>url-pattern</replaceable></arg>
+      <arg><option>--[no-]pristine-tar</option></arg>
+      <arg><option>--debian-branch=</option><replaceable>branch_name</replaceable></arg>
+      <arg><option>--upstream-branch=</option><replaceable>branch_name</replaceable></arg>
+      <arg><option>--[no-]track</option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+  <refsect1>
+    <title>DESCRIPTION</title>
+    <para>
+    &gbp-create-remote-repo; creates a repository at a remote location via ssh
+    and pushes the local repository into it. It then sets up remote branch
+    tracking so you can use &gbp-pull; to update your repo from there.
+    </para>
+    <para>
+    Note: By default the remote repositories are created in the <systemitem
+    class="groupname">collab-maint</systemitem> repository on <systemitem
+    class="systemname">alioth.debian.org</systemitem>.
+    </para>
+  </refsect1>
+  <refsect1>
+    <title>OPTIONS</title>
+    <variablelist>
+      <varlistentry>
+        <term><option>--remote-url-pattern</option>=<replaceable>pattern</replaceable>
+        </term>
+        <listitem>
+         <para>Where to create the remote repository. The part
+         <replaceable>%(pkg)s</replaceable> will be replaced by the package name.
+         </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--debian-branch</option>=<replaceable>branch_name</replaceable>
+        </term>
+        <listitem>
+         <para>The branch in the Git repository the Debian package is being
+         developed on, default is <replaceable>master</replaceable>.
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--upstream-branch</option>=<replaceable>branch_name</replaceable>
+        </term>
+        <listitem>
+         <para>The branch in the &git; repository the upstream sources are put
+         onto. Default is <replaceable>upstream</replaceable>.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--pristine-tar</option>
+        </term>
+        <listitem>
+          <para>Whether to push the pristine tar branch.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--verbose</option></term>
+       <term><option>-v</option></term>
+        <listitem>
+          <para>verbose execution</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--color=</option><replaceable>[auto|on|off]</replaceable>
+        </term>
+        <listitem>
+          <para>Wheter to use colored output.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--[no-]track</option>
+        </term>
+        <listitem>
+         <para>Wheter to set up branch tracking for the debian, upstream and
+         pristine-tar branches.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  <refsect1>
+      &man.git.config-files;
+  </refsect1>
+  <refsect1>
+    <title>SEE ALSO</title>
+    <para>
+      <citerefentry>
+        <refentrytitle>git-buildpackage</refentrytitle>
+        <manvolnum>1</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>gbp-pull</refentrytitle>
+        <manvolnum>1</manvolnum>
+      </citerefentry>
+    </para>
+  </refsect1>
+  <refsect1>
+    <title>AUTHOR</title>
+
+    <para>&dhusername; &dhemail;</para>
+
+  </refsect1>
+</refentry>
index 62115cf..be577db 100644 (file)
@@ -6,5 +6,6 @@
 <!ENTITY man.gbp.pull SYSTEM "gbp-pull.sgml">
 <!ENTITY man.gbp.clone SYSTEM "gbp-clone.sgml">
 <!ENTITY man.gbp.pq SYSTEM "gbp-pq.sgml">
+<!ENTITY man.gbp.create.remote.repo SYSTEM "gbp-create-remote-repo.sgml">
 <!ENTITY man.git.config-files SYSTEM "man.conffiles.sgml">
 <!ENTITY man.seealso.common SYSTEM "man.seealso.sgml">
index 7977691..3e3add8 100644 (file)
@@ -35,6 +35,7 @@
     &man.gbp.clone;
     &man.gbp.pull;
     &man.gbp.pq;
+    &man.gbp.create.remote.repo;
   </appendix>
   <appendix id="gbp.copyleft">
     <title>Copyright</title>
similarity index 97%
rename from examples/gbp-create-remote-repo
rename to gbp-create-remote-repo
index 6df67ae..e62ef06 100755 (executable)
@@ -96,14 +96,13 @@ def main(argv):
 
     parser = GbpOptionParser(command=os.path.basename(argv[0]), prefix='',
                              usage='%prog [options] - create a remote repository')
-    branch_group = GbpOptionGroup(parser, "branch options", "branch layout options")
+    branch_group = GbpOptionGroup(parser, "branch options", "branch layout and tracking options")
     branch_group.add_config_file_option(option_name="remote-url-pattern", dest="remote_url")
     parser.add_option_group(branch_group)
     branch_group.add_config_file_option(option_name="upstream-branch", dest="upstream_branch")
     branch_group.add_config_file_option(option_name="debian-branch", dest="debian_branch")
     branch_group.add_boolean_config_file_option(option_name="pristine-tar", dest="pristine_tar")
-    branch_group.add_option("--track", dest='track', action="store_true", default=False,
-                            help="Set up tracking for remote branches")
+    branch_group.add_boolean_config_file_option(option_name="track", dest='track')
     parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
                       help="verbose command execution")
     parser.add_config_file_option(option_name="color", dest="color", type='tristate')
index 941d441..f4b334f 100644 (file)
--- a/gbp.conf
+++ b/gbp.conf
 # Options only affecting gbp-
 [gbp-pull]
 #pristine-tar = True
+
+[gbp-create-remote-repo]
+# disable remote branch tracking
+#track = False
index 51dc7e6..7a4f743 100644 (file)
@@ -96,6 +96,7 @@ class GbpOptionParser(OptionParser):
                  'patch-numbers'   : 'True',
                  'notify'          : 'auto',
                  'merge'           : 'True',
+                 'track'           : 'True',
              }
     help = {
              'debian-branch':
@@ -154,6 +155,8 @@ class GbpOptionParser(OptionParser):
                   "Whether to send a desktop notification after the build, default is '%(notify)s'",
              'merge':
                   "after the import merge the result to the debian branch, default is '%(merge)s'",
+             'track':
+                  "set up tracking for remote branches, default is '%(track)s'",
            }
     config_files = [ '/etc/git-buildpackage/gbp.conf',
                      os.path.expanduser('~/.gbp.conf'),
index 2b9edcc..bd3ab45 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -22,7 +22,7 @@ setup(name = "git_build_package",
       author = 'Guido Guenther',
       author_email = 'agx@sigxcpu.org',
       scripts = [ 'git-buildpackage', 'git-import-dsc', 'git-import-orig', 'git-dch', 'git-import-dscs',
-                  'gbp-pq', 'gbp-pull', 'gbp-clone', 'git-pbuilder' ],
+                  'gbp-pq', 'gbp-pull', 'gbp-clone', 'git-pbuilder', 'gbp-create-remote-repo'],
       packages = [ 'gbp' ],
       data_files = [("/etc/git-buildpackage/", ["gbp.conf" ]),],
 )