generating .diff file with complete code from svn eclipse - eclipse

when i generate .diff file from eclipse using
Java Editor -> Right click -> Team -> Create Patch
I am getting .diff file only displaying the lines of modified changes. I want to generate the .diff file with complete code of that file. Any solution for this?

You have asked in a comment: How to provide external diff?
Install WinMerge as external diff tool.
Then, create .bat file (make sure you pass correct path to WinMerge exe):
start "WinMerge" /B /WAIT "C:\Program Files (x86)\WinMerge\WinMergeU.exe" /e /ub /dl %3 /dr %5 %6 %7
and save it for example at
c:\wm.bat
Then pass .bat file as argument: svn diff --diff-cmd c:\wm.bat
Which will open up WinMerge and show you the differences with complete file code.
More info can be found at this SO link.

I had the same problem (TortoiseSvn on windows) and I solved it by downloading GetGnuWin32.exe and then following the directions in readme.txt to install it. I installed it in
Downloads\GetGnuWin32
directory. Then I opened command window in the folder and added path to diff.exe on the system Path variable as : set PATH=%PATH%;C:\Users\tbudukh\Downloads\GetGnuWin32\gnuwin32\bin.
Then ran the command: svn diff --diff-cmd=diff -x -U999999 > patch.diff

I solved this issue by installing external diff tool called GnuWin32 and configured its path in TortoiseSvn -> Settings. Look for Merge Tool and select the option as external and provide the path of GnuWin32.
Now use the svn command as svn diff --diff-cmd diff -x -U1000 > filename.diff. This will produce diff file with 1000 lines of context. Increase -U value if your file is longer than 1000 lines. now diff file can be uploaded in any code review tool with full context.

Related

Eclipse does not find git on windows installation

I'm using eclipse in windows for embedding programming. Naturally git is a big part of my work and I want to keep track of hashes in my code. I tried using this question, and many similar ones to have the git hash as a preprocessor micro. So added git log -1 --pretty=format:'#define GIT_HASH %h' > ../Inc/gitinfo.h to pre-build step.
The trouble is that eclipse does not find git even though it is in the path (git works in windows cmd), and egit is also installed on my eclipse (Neon 4.6.3).
Also tried to add the command in a batch file and run that file in the pre-build using cmd /c "../../mybatchfile.bat" which throws '..' is not recognized as an internal or external command,.
I would appreciate any guidance on that.

Revision/HEAD as parameter to TortoiseIDiff

I'm trying to make Notepad++ automatically launch Tortoise's Diff.
With WinExplorer's context menu itens, Tortoise does it nicelly. I use WinMerge to compare and merge files and it's executed. But I can't find a command line way for Tortoise to do the same.
I found http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation-idiff.html but it was no use. What I need to do is Tortoise to create a temp file with HEAD copy of the file I wanna compare and execute WinMerge passing these files as parameters.
nvm I got it!
TortoiseProc /command:diff /path:"$(FULL_CURRENT_PATH)"
And I can even create a shortcut to run it :D

Storing code in Google Drive/DropBox

First I understand I should probably be using GitHub or some other online repository, but I would like to explore some of the concepts necessary for my method to work.
I would like to run a batch script/program every time I close Visual Studio, Eclipse, Notepad. Specifically, I would like to run a copy program to copy all of my source code that I generated with that program to a folder inside a Google Drive/Dropbox folder. That way I know it is saved to the cloud. this way I do not have to set up a special backup extension inside each Development enviornment.
Firstly is there a built in simple solution for doing the above? or Do I need to write a custom service that checks to see when those programs are closed? and if that is the way to go where should I look for an example of how to get started?
Thanks.
No, there is no simple built-in method that will backup the files that you want when you want it.
Instead you could simply point your work directories to your Gdrive or DropBox folders, and create a folder inside them for each.
Or you could create a task that copies the files every 10 minutes or however long.
But if you want it to run only when you exit the programs you specify: Yeah, you'll pretty much need to write a batch file for each of the programs you want to back up. Then call the batch file instead of the program.
startVS.bat
set DropBox=C:\Wherever\
start /wait "" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
xcopy /s /e /d /y "%userprofile%\Documents\Visual Studio 2008\Projects\*.*" "%DropBox%"
If you want to have the same icon, and for the batch file run minimized:
1) Open Windows Explorer, navigate to startVS.bat, right-click on it, and click Create Shortcut.
2) Right-click on startVS - ShortCut -> Click Rename and rename it Visual Studios, then press [ENTER].
3) Right-Click on the new Visual Studios -> Properties -> Change Icon -> Browse
4) Paste %ProgramFiles% (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe into the File Name box.
5) Click Open -> OK
6) Click Normal Window -> Minimized -> OK
7) Put a copy of Visual Studios (really named Visual Studios.lnk) where ever you want it, like in the Start menu.
If you are not running a 64 bit system, at step 4 paste %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe into the File Name box.
I think instead of going for this approach, you can run your script on a timely basis - say every 15 min.
This appraise will have below advantages advantages:
Easy to implement
Tool Independent
Timely Backup
Re-Use
So I think your problem will be solved by this approach.
For Google Drive, I've been messing around with GoogleCL: (I'm on Linux/Crunchbang)
$ sudo apt-get install python-gdata
$ sudo apt-get install googleCL
This'll give you the 'google' command:
$ which google
$ man google
You can upload files:
$ google docs upload foo.txt
(seems to store it as 'foo')
And download it: (in my opinion, syntax is inconsistent)
$ google docs get --title foo
(it won't find foo.txt for some reason)
So far, I'm not that happy with it. I want to encrypt files and park them there,
but it seems to choke on them. I've tried uuencoding them so I can just upload
a text file, but have had inconsistent results on files that aren't all that big
(1.6 Mbytes). Maybe Google doesn't want to deal with files it can't get any search
results out of ? Anyway, maybe Dropbox is better; haven't tried it yet.

Mercurial Eclipse Error

I am trying to use mercurial in eclipse. I downloaded mercurial eclipse plugin for this.
But, despite I had reinstalled it many times, it gives the same error, I put the screenshot below.
Checking encoding (cp1254)...
Checking extensions...
Checking templates...
Checking patch...
Checking commit editor...
Can't find editor 'notepad' in PATH
(specify a commit editor in your configuration file)
Checking username...
1 problems detected, please check your install!. Command line: hg -y debuginstall
I do not know how to handle this. Any help will be appreciated very much, thank you.
I encountered the same problem when I tried to run Eclipse x64 on Win 7 x64. The MercurialEclipse seems not able to access C:\windows\system32\ folder, although it has been specified in system PATH.
You need to specify the location of editor in the Mercurial.ini file. This file is located at c:\Users\<your_username>\mercurial.ini.
Under the username = ... line, add a line to specify the editor (see following). Remember not to put quotes around the path.
[ui]
username = <username>
editor = c:\Windows\System32\notepad.exe
(Note: similar to bug 13505 in Mercurial Eclipse project)
The Eclipse inherits the path from your current session.
Open a DOS session, and check if said session does have notepad in its path (which it should considering notepad is in C:\Windows\system32\notepad.exe). Make sure C:\Windows\system32 (or %SystemRoot%\system32) is in first position in your PATH (in case of side effect with other paths with spaces or special characters in it).
If the path is correct, then launch the eclipse from that command-line DOS windows, and see if the problem persists.
The OP emre reports its %PATH% being:
C:\Program Files\NVIDIA Corporation\PhysX\Common;
C:\Program Files\Java\jdk1.6.0_20\bin;
D:\eclipse-java-helios-sr1-win32\eclipse\android-2.2_r0-windows\android-2.2_r0-windows\tools;
C:\Program Files\Java\jdk1.6.0_20\bin
In other word, no %SystemRoot%\system32.
You need to edit the System variables in the Environment variable settings of Windows, and add in the first place in the PATH variable:
%SystemRoot%\system32
Then you can open a new DOS session, launch eclipse from there and ot should work fine.
i had the same problem and searched for hours till i tried to escape the backslash in the path for the editor.
so i edited the mercurial.ini (on my win7) like this:
[ui]
username = <username>
editor = c:\\Windows\\System32\\notepad.exe
and it worked.
Three additions:
It seems that Tortoise HG 3.3 configuration utility added my editor
setting to [tortoisehg] section rather than the [ui] section of
mercurial.ini For Eclipse Mercurial to work, the editor path must also be in
the [ui] section. Otherwise, eclipse will have this error.
using forward slash suitably substitutes for the escaped backslash
On Windows 8.1, notepad easily starts from the command prompt (on
system path) and yet the error above still occurs. In my hands the
general system path advice given above seems off target
One other thing to look at is the HGEDITOR environment variable, which overrides the editor setting in mercurial.ini. I had HGEDITOR set to C:\Windows\System32\notepad.exe, which didn't work (due to the unescaped backslashes), and all my changes to mercurial.ini were ignored. Changing HGEDITOR to C:\\Windows\\System32\\notepad.exe finally got rid of the Mercurial Eclipse errors.

Eclipse CDT created makefile cannot "clean" on Windows

I have a makefile project with makefiles generated by Eclipse CDT (Helios, MinGW). The "clean" command does not work because the "del" command is executed with arguments like ./src/myfile.o, but on Windows this doesn't work (should be .\src\myfile.o).
How can I either tell Eclipse to use the Windows Path Separator or otherwise maybe replace the command "del" by something different (I could easily write a batch script which replaces the forward-slashes by backslashes)?
Thanks for any hints!
There is simple solution, create a makefile.defs file in your project's main directory with the following content:
RM := rm -rf
Basically this file lets you override variables from auto-generated makefile and RM is wrapper for remove command.
The best option is to download and install GnuUtils http://sourceforge.net/projects/gnuwin32/files/coreutils/5.3.0/coreutils-5.3.0.exe/download
and add the installed directory (C:\ProgramFile???\GnuWin32\bin)to your windows path and restart eclipse.Eclipse should execute rm-rf now...if it still doesnt ...restart windows and check your path again to see if it has \GnuWin32\bin ...then restart eclipse...
in your msys bin directory (C:\msys\1.0\bin on my machine) create a copy of rm.exe and rename it del.exe.
this is a hack. i am not familiar with the differences between the rm and del arguments. the base functionality is there. (delete file1 file2 filen)
in windows there is no del.exe, the delete functionality is built into CMD.exe. eclipse runs the commands in the msys shell which does not have the del functionality. this prevents you from adding a path to eclipse in which to search for del.exe.
i tried many different things to get the managed make to put "RM := rm" in the makefile but failed.
Edit the makefiles to use the mingw rm command instead?
Before you rename rm.exe to del.exe, check the path in Eclipse. The path has to have Unix path separators (forward slash, /) and not the Windows path separator (backslash, \).
This has fixed the problem on my side.