<refentry id="man.gbp.pull">
  <refentryinfo>
    <address>
      &dhemail;
    </address>
    <author>
      &dhfirstname;
      &dhsurname;
    </author>
  </refentryinfo>
  <refmeta>
   <refentrytitle>gbp-pull</refentrytitle>
    &dhsection;
  </refmeta>
  <refnamediv>
    <refname>gbp-pull</refname>

    <refpurpose>Safely update a repository from remote</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <cmdsynopsis>
      &gbp-pull;

      &man.common.options.synopsis;
      <arg><option>--force=</option><replaceable>[merge|clean]</replaceable></arg>
      <arg><option>--all</option></arg>
      <arg><option>--redo-pq</option></arg>
      <arg><option>--[no-]pristine-tar</option></arg>
      <arg><option>--ignore-branch</option></arg>
      <group>
        <arg><option>--debian-branch=</option><replaceable>branch_name</replaceable></arg>
        <arg><option>--packaging-branch=</option><replaceable>branch_name</replaceable></arg>
      </group>
      <arg><option>--upstream-branch=</option><replaceable>branch_name</replaceable></arg>
      <arg><option>--depth=</option><replaceable>depth</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
    <title>DESCRIPTION</title>
    <para>
    &gbp-pull; updates the <emphasis>debian</emphasis>,
    <emphasis>upstream</emphasis> and <emphasis>pristine-tar</emphasis>
    branches from a remote repository in one go. It checks if the update is safe (would
    result in a <emphasis>fast-forward</emphasis> merge) and aborts otherwise.
    </para>
  </refsect1>
  <refsect1>
    <title>OPTIONS</title>

    <variablelist>
      &man.common.options.description;

      <varlistentry>
        <term><option>--force=</option><replaceable>[merge|clean]</replaceable></term>
        <listitem>
          <para>Force a branch update even if this results in a non fast
	      forward update.
          <emphasis>merge</emphasis> does a git-merge.
          <emphasis>clean</emphasis> checks out a clean copy from upstream.
          <warning><para>using <emphasis>clean</emphasis>
          makes you lose your modifications.</para></warning></para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--all</option></term>
        <listitem>
	  <para>Update all remote-tracking branches that have identical name in the
            remote repository.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--redo-pq</option></term>
        <listitem>
	  <para>also rebuild the corresponding patch-queue using &gbp-pq;.
	  <warning><para>This drops the patch-queue branch if it exists.</para></warning></para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--ignore-branch</option>
        </term>
        <listitem>
	  <para>Don't care if we're on a branch or in detached head state.</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>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--packaging-branch</option>=<replaceable>branch_name</replaceable>
        </term>
        <listitem>
          <para>The branch the packaging is being maintained on.
          Alternative to the <emphasis>--debian-branch</emphasis> option.</para>
        </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>--depth</option>=<replaceable>depth</replaceable>
        </term>
        <listitem>
          <para>Git history depth, for deepening shallow git clones.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--pristine-tar</option>
        </term>
        <listitem>
          <para>Whether to update the pristine-tar branch too.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
    <title>EXIT CODES</title>
    <para>
    When &gbp-pull; finishes it indicates success or failure with it's exit code:
    </para>
    <variablelist>
      <varlistentry>
        <term><option>0</option></term>
        <listitem>
	  <para>Success.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>1</option></term>
        <listitem>
	  <para>An error occured during the pull, see the printed error message for details.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>2</option></term>
        <listitem>
	  <para>At least one branch couldn't be fast forwarded.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
      &man.gbp.config-files;
  </refsect1>
  <refsect1>
    <title>SEE ALSO</title>
    <para>
      <xref linkend="man.gbp.buildpackage">,
      <xref linkend="man.gbp.clone">,
      <xref linkend="man.gbp.pq">,
      <xref linkend="man.gbp.conf">
    </para>
  </refsect1>
  <refsect1>
    <title>AUTHOR</title>

    <para>&dhusername; &dhemail;</para>

  </refsect1>
</refentry>
