Bug #60526 [ReO->Csd]: Defect "Download unified diff as a patch"

From: Date: Sat, 11 Feb 2012 11:08:33 +0000
Subject: Bug #60526 [ReO->Csd]: Defect "Download unified diff as a patch"
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-7922@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60526&edit=1

 ID:                 60526
 Updated by:         irker@php.net
 Reported by:        jakoch at web dot de
 Summary:            Defect "Download unified diff as a patch"
-Status:             Re-Opened
+Status:             Closed
 Type:               Bug
 Package:            Online Doc Editor problem
 PHP Version:        Irrelevant
 Assigned To:        yannick
 Block user comment: N
 Private report:     N

 New Comment:

I added "-N" option to diff command, it's work for directories and files, so
it's 
work now. 
This is what you need?


Previous Comments:
------------------------------------------------------------------------
[2011-12-22 06:06:33] yannick@php.net

Yes, you're not in the right class.

The diff here is on this file : https://svn.php.net/repository/web/doc-
editor/trunk/php/File.php in method rawDiff()

We can't compare directory as your suggestion. We must find a way to compare 
only files. And diff unix command need two files or directory as arguments.

Perhaps adding a tmp file to compare with new file.

------------------------------------------------------------------------
[2011-12-22 01:26:08] jakoch at web dot de

Hi Yannick,

i took a quick glance at the PHP SVN directory for the doc-editor.
Well, the function diff uses "svn diff" there. Haven't tracked this down and maybe
i'm in the wrong file (https://svn.php.net/repository/web/doc-editor/trunk/php/SvnClient.php) ?

Anyway, you might try adding the parameter "-N" for --new-file to the unix diff cmd. That
will take take any new files in directories into account.
There is also "-P" which will take new files in the second folder into account.
So it's either 
diff -aN original/ new/ > original.patch
or
diff -aP original/ new/ > original.patch

Please test :)

Regards, Jens

------------------------------------------------------------------------
[2011-12-21 21:38:39] yannick@php.net

Hi jens,

we just can't use "svn diff" to do this job. Just because all users use the same 
"real" svn repository. So, if an others user have been modify a file into the 
same folder as yours, this change would be appears into your patch. And a 
modified file can be in the same folder but into an others patchs of yours.

So, we use unix command "diff" for doing this. And I'm searching a way to 
display new file with this command. If you have a suggestion, I will be pleased 
;)

Best,
Yannick

------------------------------------------------------------------------
[2011-12-20 00:58:56] jakoch at web dot de

Hmm, thought about that... well, i think it's relevant to be able to download patches, which
add new files.

Your solution to this problem might be a workaround, but is not a correct solution to the problem.
It's not a matter of comparing two files, it's a matter of comparing svn states.

Files added newly to a Subversion Repository are svn diffable. Such a patch file is not empty(!),
but would look like: 
"--- file (revision 0)
+++ file (working copy)
content
properties
mime-type"
and so on...

Do you use SVN commands to create the patch?

For me the proper way of providing a patch containing new files also,
would be something like:
1) use svn status to get all new files (question marked)
2) svn add all those files 
3) svn diff > patch_with_newfiles.txt

4) svn reset to state before add (revert, cleanup)

After downloading such a patch it would be directly applicable to the repository, adding new files
and also modifing existing content.

It's just a solution suggestion.

Regards, Jens

------------------------------------------------------------------------
[2011-12-19 09:30:44] yannick@php.net

Your patch contains only new files (translated from scratch).
So, the diff isn't revelante here as we can't compare your file with an other.

For me, actually, this action don't reload the editor. It will just download an 
empty patch, as expected for this "new" translated file.

The only solution here according to me is to detect the type of files into the 
patch, and don't display the "view unified diff" & the download patch link when 
there is only new translated file.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=60526


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60526&edit=1


Thread (16 messages)

« previous php.doc.bugs (#7922) next »