First RFC documentation

This commit is contained in:
CJ 2014-12-18 15:14:52 +08:00
parent 73d5209743
commit 8259a0dcb4
3 changed files with 453 additions and 0 deletions

191
man/git-scp.1 Normal file
View file

@ -0,0 +1,191 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-SCP" "1" "December 2014" "" "Git Extras"
.
.SH "NAME"
\fBgit\-scp\fR \- Copy files to SSH comptabile \fBgit\-remote\fR
.
.SH "SYNOPSIS"
.
.nf
`git scp` \-h|help|?
`git scp` <remote> [<commits>\.\.\.|<path>\.\.\.]
`git rscp` <remote> [<path>]
.
.fi
.
.SH "DESCRIPTION"
A convenient way to copy files from the current working tree to the working directory of a remote repository\. If a \fB<commits>\.\.\.\fR is provided, only files that has changed within the commit range will be copied\.
.
.P
Internally this script uses \fBrsync\fR and not \fBscp\fR as the name suggests\.
.
.P
\fBgit\-rscp\fR \- Copies specific files from the working directory of a remote repository to the current working directory\.
.
.SH "OPTIONS"
<remote>
.
.IP "" 4
.
.nf
The git remote where you want to copy your files\.
.
.fi
.
.IP "" 0
.
.P
<commits>\.\.\.
.
.IP "" 4
.
.nf
Any commit, commit range or tree\. Uses `git\-diff`(1)
.
.fi
.
.IP "" 0
.
.P
<path>\.\.\.
.
.IP "" 4
.
.nf
The <paths> parameters, when given, are used to limit the diff to the named paths (you can give directory names and get diff for all files under them)\.
.
.fi
.
.IP "" 0
.
.SH "GIT CONFIGS"
To sanitize files using \fBdos2unix\fR before copying files
.
.IP "" 4
.
.nf
$ git config \-\-global \-\-add extras\.scp\.sanitize dos2unix
.
.fi
.
.IP "" 0
.
.P
You can run the files through PHP lint (i\.e\. \fBphp \-l\fR) before copying files
.
.IP "" 4
.
.nf
$ git config \-\-global \-\-add extras\.scp\.sanitize php_lint
.
.fi
.
.IP "" 0
.
.SH "EXAMPLES"
Make sure you have \fBgit\-remote\fR(1) setup
.
.IP "" 4
.
.nf
$ git remote add staging myStagingServer:/var/www/html
.
.fi
.
.IP "" 0
.
.P
Copy unstaged files to remote
.
.IP "" 4
.
.nf
$ git scp staging
.
.fi
.
.IP "" 0
.
.P
Copy staged and unstaged files to remote
.
.IP "" 4
.
.nf
$ git scp staging HEAD
.
.fi
.
.IP "" 0
.
.P
Copy files that has been changed in the last commit, plus any staged or unstaged files to remote
.
.IP "" 4
.
.nf
$ git scp staging HEAD~1
.
.fi
.
.IP "" 0
.
.P
Copy files that has been changed between now and a tag
.
.IP "" 4
.
.nf
$ git scp staging v1\.2\.3
.
.fi
.
.IP "" 0
.
.P
Copy specific files
.
.IP "" 4
.
.nf
$ git scp staging index\.html \.gitignore \.htaccess
.
.fi
.
.IP "" 0
.
.P
Copy specific directory
.
.IP "" 4
.
.nf
$ git scp staging js/vendor/
.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Chern Jie <\fIlim@chernjie\.com\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/chernjie/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>

180
man/git-scp.html Normal file
View file

@ -0,0 +1,180 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='content-type' value='text/html;charset=utf8'>
<meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
<title>git-scp(1) - Copy files to SSH comptabile &lt;code&gt;git-remote&lt;/code&gt;</title>
<style type='text/css' media='all'>
/* style: man */
body#manpage {margin:0}
.mp {max-width:100ex;padding:0 9ex 1ex 4ex}
.mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
.mp h2 {margin:10px 0 0 0}
.mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
.mp h3 {margin:0 0 0 4ex}
.mp dt {margin:0;clear:left}
.mp dt.flush {float:left;width:8ex}
.mp dd {margin:0 0 0 9ex}
.mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
.mp pre {margin-bottom:20px}
.mp pre+h2,.mp pre+h3 {margin-top:22px}
.mp h2+pre,.mp h3+pre {margin-top:5px}
.mp img {display:block;margin:auto}
.mp h1.man-title {display:none}
.mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
.mp h2 {font-size:16px;line-height:1.25}
.mp h1 {font-size:20px;line-height:2}
.mp {text-align:justify;background:#fff}
.mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
.mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
.mp u {text-decoration:underline}
.mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
.mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
.mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
.mp b.man-ref {font-weight:normal;color:#434241}
.mp pre {padding:0 4ex}
.mp pre code {font-weight:normal;color:#434241}
.mp h2+pre,h3+pre {padding-left:0}
ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
ol.man-decor {width:100%}
ol.man-decor li.tl {text-align:left}
ol.man-decor li.tc {text-align:center;letter-spacing:4px}
ol.man-decor li.tr {text-align:right;float:right}
</style>
</head>
<!--
The following styles are deprecated and will be removed at some point:
div#man, div#man ol.man, div#man ol.head, div#man ol.man.
The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
.man-navigation should be used instead.
-->
<body id='manpage'>
<div class='mp' id='man'>
<div class='man-navigation' style='display:none'>
<a href="#NAME">NAME</a>
<a href="#SYNOPSIS">SYNOPSIS</a>
<a href="#DESCRIPTION">DESCRIPTION</a>
<a href="#OPTIONS">OPTIONS</a>
<a href="#GIT-CONFIGS">GIT CONFIGS</a>
<a href="#EXAMPLES">EXAMPLES</a>
<a href="#AUTHOR">AUTHOR</a>
<a href="#REPORTING-BUGS">REPORTING BUGS</a>
<a href="#SEE-ALSO">SEE ALSO</a>
</div>
<ol class='man-decor man-head man head'>
<li class='tl'>git-scp(1)</li>
<li class='tc'>Git Extras</li>
<li class='tr'>git-scp(1)</li>
</ol>
<h2 id="NAME">NAME</h2>
<p class="man-name">
<code>git-scp</code> - <span class="man-whatis">Copy files to SSH comptabile <code>git-remote</code></span>
</p>
<h2 id="SYNOPSIS">SYNOPSIS</h2>
<pre><code>`git scp` -h|help|?
`git scp` &lt;remote> [&lt;commits>...|&lt;path>...]
`git rscp` &lt;remote> [&lt;path>]
</code></pre>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<p>A convenient way to copy files from the current working tree to the working directory of a remote repository. If a <code>&lt;commits>...</code> is provided, only files that has changed within the commit range will be copied.</p>
<p>Internally this script uses <code>rsync</code> and not <code>scp</code> as the name suggests.</p>
<p><code>git-rscp</code> - Copies specific files from the working directory of a remote repository to the current working directory.</p>
<h2 id="OPTIONS">OPTIONS</h2>
<p> &lt;remote&gt;</p>
<pre><code>The git remote where you want to copy your files.
</code></pre>
<p> &lt;commits&gt;...</p>
<pre><code>Any commit, commit range or tree. Uses `git-diff`(1)
</code></pre>
<p> &lt;path&gt;...</p>
<pre><code>The &lt;paths> parameters, when given, are used to limit the diff to the named paths (you can give directory names and get diff for all files under them).
</code></pre>
<h2 id="GIT-CONFIGS">GIT CONFIGS</h2>
<p> To sanitize files using <code>dos2unix</code> before copying files</p>
<pre><code>$ git config --global --add extras.scp.sanitize dos2unix
</code></pre>
<p> You can run the files through PHP lint (i.e. <code>php -l</code>) before copying files</p>
<pre><code>$ git config --global --add extras.scp.sanitize php_lint
</code></pre>
<h2 id="EXAMPLES">EXAMPLES</h2>
<p> Make sure you have <code>git-remote</code>(1) setup</p>
<pre><code>$ git remote add staging myStagingServer:/var/www/html
</code></pre>
<p> Copy unstaged files to remote</p>
<pre><code>$ git scp staging
</code></pre>
<p> Copy staged and unstaged files to remote</p>
<pre><code>$ git scp staging HEAD
</code></pre>
<p> Copy files that has been changed in the last commit, plus any staged or unstaged files to remote</p>
<pre><code>$ git scp staging HEAD~1
</code></pre>
<p> Copy files that has been changed between now and a tag</p>
<pre><code>$ git scp staging v1.2.3
</code></pre>
<p> Copy specific files</p>
<pre><code>$ git scp staging index.html .gitignore .htaccess
</code></pre>
<p> Copy specific directory</p>
<pre><code>$ git scp staging js/vendor/
</code></pre>
<h2 id="AUTHOR">AUTHOR</h2>
<p>Written by Chern Jie &lt;<a href="&#x6d;&#97;&#x69;&#x6c;&#x74;&#x6f;&#58;&#108;&#105;&#x6d;&#64;&#x63;&#x68;&#x65;&#x72;&#x6e;&#106;&#105;&#x65;&#x2e;&#x63;&#x6f;&#109;" data-bare-link="true">&#108;&#x69;&#109;&#x40;&#x63;&#104;&#101;&#x72;&#x6e;&#x6a;&#105;&#101;&#46;&#x63;&#111;&#109;</a>&gt;</p>
<h2 id="REPORTING-BUGS">REPORTING BUGS</h2>
<p>&lt;<a href="https://github.com/chernjie/git-extras/issues" data-bare-link="true">https://github.com/chernjie/git-extras/issues</a>&gt;</p>
<h2 id="SEE-ALSO">SEE ALSO</h2>
<p>&lt;<a href="https://github.com/tj/git-extras" data-bare-link="true">https://github.com/tj/git-extras</a>&gt;</p>
<ol class='man-decor man-foot man foot'>
<li class='tl'></li>
<li class='tc'>December 2014</li>
<li class='tr'>git-scp(1)</li>
</ol>
</div>
</body>
</html>

82
man/git-scp.md Normal file
View file

@ -0,0 +1,82 @@
git-scp(1) -- Copy files to SSH comptabile `git-remote`
=======================================================
## SYNOPSIS
`git scp` -h|help|?
`git scp` <remote> [<commits>...|<path>...]
`git rscp` <remote> [<path>]
## DESCRIPTION
A convenient way to copy files from the current working tree to the working directory of a remote repository. If a `<commits>...` is provided, only files that has changed within the commit range will be copied.
Internally this script uses `rsync` and not `scp` as the name suggests.
`git-rscp` - Copies specific files from the working directory of a remote repository to the current working directory.
## OPTIONS
&lt;remote&gt;
The git remote where you want to copy your files.
&lt;commits&gt;...
Any commit, commit range or tree. Uses `git-diff`(1)
&lt;path&gt;...
The <paths> parameters, when given, are used to limit the diff to the named paths (you can give directory names and get diff for all files under them).
## GIT CONFIGS
To sanitize files using `dos2unix` before copying files
$ git config --global --add extras.scp.sanitize dos2unix
You can run the files through PHP lint (i.e. `php -l`) before copying files
$ git config --global --add extras.scp.sanitize php_lint
## EXAMPLES
Make sure you have `git-remote`(1) setup
$ git remote add staging myStagingServer:/var/www/html
Copy unstaged files to remote
$ git scp staging
Copy staged and unstaged files to remote
$ git scp staging HEAD
Copy files that has been changed in the last commit, plus any staged or unstaged files to remote
$ git scp staging HEAD~1
Copy files that has been changed between now and a tag
$ git scp staging v1.2.3
Copy specific files
$ git scp staging index.html .gitignore .htaccess
Copy specific directory
$ git scp staging js/vendor/
## AUTHOR
Written by Chern Jie &lt;<lim@chernjie.com>&gt;
## REPORTING BUGS
&lt;<https://github.com/chernjie/git-extras/issues>&gt;
## SEE ALSO
&lt;<https://github.com/tj/git-extras>&gt;