<div>Dev list:</div><div><br></div>Yeah I&#39;ve definitely learned that you might be much better off using the &#39;create branches for features and delete them when done, or make them public to allow people to help&#39; method rather than the old CVS &#39;make changes and then a patch&#39; method of development. It&#39;s a transition, but I think it works really well once you get used to it. And I&#39;m one of the biggest CVS curmudgeons in Drupal.<div>

<br clear="all">Dave Reid<br><a href="mailto:dave@davereid.net">dave@davereid.net</a><br>
<br><br><div class="gmail_quote">On Mon, Apr 11, 2011 at 4:42 PM, Bob Hutchinson <span dir="ltr">&lt;<a href="mailto:hutchlists@midwales.com">hutchlists@midwales.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Monday 11 April 2011, Dave Cohen wrote:<br>
&gt; I&#39;m trying, and failing, to create a patch that adds new files to a module.<br>
<br>
</div>Here is a simple way to pull together a patch on a drupal project.<br>
<br>
Create a new directory, let&#39;s call it &#39;git-sandbox&#39;<br>
cd into it and run something like this:<br>
<br>
git clone --branch 6.x-3.x <a href="http://git.drupal.org/project/mymodule.git" target="_blank">http://git.drupal.org/project/mymodule.git</a><br>
<br>
This will create a directory &#39;mymodule&#39; (or whatever you fetched)<br>
<br>
copy your changed files into it and run<br>
<br>
git diff &gt; mymodule.patch<br>
<br>
if you are adding new files copy them in and run &#39;add .&#39;<br>
<br>
cd in and run<br>
<br>
git diff --staged &gt; mymodule.patch<br>
<br>
To do both at the same time<br>
<br>
git diff HEAD &gt; mymodule.patch<br>
<br>
As Sam Boyer explains earlier in this thread.<br>
<br>
open the patchfile in your editor and eyeball to see if it makes any sense<br>
<br>
If that&#39;s OK copy the patchfile away somewhere and delete<br>
the whole mymodule directory and run the git clone command again, copy the<br>
patchfile back in and run<br>
<br>
git apply mymodule.patch<br>
or<br>
patch -p1 &lt; mymodule.patch<br>
<br>
if it applies cleanly you are ready to upload the patch to the issue queue<br>
or wherever.<br>
<br>
Of course a git clone run using http cannot be used for commits so it is<br>
&#39;safer&#39; as it were.<br>
<br>
You can also do all this and a lot more using a tool like Smartgit though<br>
many would argue that learning it on the command line is better for<br>
understanding it, true enough.<br>
<br>
Another *big* help is to install the git docs (as well as php, mysql etc)<br>
on your devbox.<br>
<br>
Hope this helps.<br>
<div><div></div><div class="h5"><br>
&gt;<br>
&gt; According to <a href="http://drupal.org/node/707484" target="_blank">http://drupal.org/node/707484</a>, I should simply run `git add<br>
&gt; ...` then &quot;Next time you run git diff, these new files will be included as<br>
&gt; well.&quot;  In my experience, this statement is false.<br>
&gt;<br>
&gt; When I run `git status`, I see something like this:<br>
&gt;<br>
&gt; [dave@starbuck fb-3]$ git status<br>
&gt; # On branch 6.x-3.x<br>
&gt; # Changes to be committed:<br>
&gt; #   (use &quot;git reset HEAD &lt;file&gt;...&quot; to unstage)<br>
&gt; #<br>
&gt; #       new file:   fb.process.inc<br>
&gt; #       new file:   fb_tab.js<br>
&gt; #<br>
&gt; # Changes not staged for commit:<br>
&gt; #   (use &quot;git add &lt;file&gt;...&quot; to update what will be committed)<br>
&gt; #   (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working<br>
&gt; directory) #<br>
&gt; #       modified:   README.txt<br>
&gt; #       modified:   contrib/fb_example.module<br>
&gt; #       modified:   fb.module<br>
&gt; #       modified:   fb_canvas.admin.inc<br>
&gt; #       modified:   fb_canvas.module<br>
&gt; #       modified:   fb_devel.module<br>
&gt; #       modified:   fb_settings.inc<br>
&gt; #       modified:   fb_tab.admin.inc<br>
&gt; #       modified:   <a href="http://fb_tab.info" target="_blank">fb_tab.info</a><br>
&gt; #       modified:   fb_tab.module<br>
&gt; #       modified:   fb_url_rewrite.inc<br>
&gt;<br>
&gt;<br>
&gt; When I run `git diff`, I see changes to all the modified files, but I do<br>
&gt; not see the new files.<br>
&gt;<br>
&gt; What am I missing?  Thanks,<br>
&gt;<br>
&gt; -Dave<br>
<br>
<br>
</div></div><font color="#888888">--<br>
-----------------<br>
Bob Hutchinson<br>
Midwales dot com<br>
-----------------<br>
</font></blockquote></div><br></div>