I have Tortoise SVN but I don't like the diff tool. Is there a way to use Meld with tortoise SVN? I know tortoise has an option to set external diff tools, but I am not sure how to use that with meld.
Download meld from http://sourceforge.net/projects/meld-installer/
Unpack the downloaded zip archive into "Program Files" or wherever you want it to be installed. This will create two folders, named "meld" and "python".
Start "meld.exe" from the "meld" folder. If you get a Meld window opened, then you have installed Meld successfully.
In TortoiseSVN, select Settings, then go to External Programs -> Diff Viewer on the left panel. In Configure the program used for comparing different revisions of files, browse to the Meld executable, "meld.exe", in your "meld" folder. Click on Apply.
That's it!
With Meld 3.12 on windows this didn't work for me when merging.
My 'Merge Tool' command is:
C:\Program Files (x86)\Meld\meld\meld.exe --auto-merge --output %merged %mine %base %theirs
This worked for me (Meld 1.8.6):
meld %mine %merged %theirs --output %merged --auto-merge
Super fancy: three-way merge with extra tabs for [mine vs base] and [theirs vs base].
meld %mine %base %theirs -o %merged --diff %base %mine --diff %base %theirs --auto-merge
https://lukas.zapletalovi.com/2012/09/three-way-git-merging-with-meld.html
Especialy for merging 3-ways conflicts, under Windows, with Meld 1.8.6, this helps me :
C:\Program Files (x86)\Meld\meld\meld.exe %mine %base %theirs --output %merged --auto-merge
But I do like the extra tabs of ryascl also.
Related
I just merged a directory and am doing a TortoiseSVN diff to check for changes before committing. I can see from the file explorer that I have modified several files, but I can't see anything from the diff, only the propinfo. It seems I modified svn:mergeinfo while merging, and that is all the diff is showing me.
How do I see the actual files that have changed??? Using Kdiff3 vs TortoiseMerge doesn't make a difference.
TortoiseSVN version 1.9.7
When propinfo is modified, TortoiseSVN apparently only shows this propinfo when diffing a directory, if you use "SVN diff" from the context menu.
You can work around this by using Check for Updates from the context menu rather than SVN diff.
This works because "Check for Updates" appears (?) to be equivalent to the command TortoiseProc.exe /command:diff /path:. /ignoreprops, while "SVN diff" does not pass the ignoreprops flag.
I have a linux eclipse project checked into our company svn. Works great.
The project is intended to be cross compiled on Windows.
Untill now, I have simply moved the source files between OSes. However, I thought I'd like to let svn do this for me. Should be simple enough, just checkout the eclipse linux src into the VS project dir, right? Wrong!
The correct source was checked out of svn and it worked fine. But when I tried to check it back in i kept getting "Commit not completed filename remains in conflict" errors. I hadn't even changed anything!
Did a little checking. Turns out the linux src directory is pretty much just the source and headers. On the MSVS side the project directory contains the source and headers but also contains a bunch of files that are used by VS with names like projname.vcproj etc. etc.
So, I did a checkout into a scratch dirextory, .\fred. Checked .\fred back in. No problems. Added a new file to .fred, xxx.xxx. Check in reported:
svn: E200009: Commit failed (details follow):
svn: E200009: 'C:\Projects\fred\xxx.xxx' is not under version control
Makes me wonder about those uncommitted Visual Studio files.
So, are those files my problem? Are they breaking the commit operation?
As an alternate solution I am thinking of adding the VS files to the src dir in svn. If linux/eclipse checks them out I can tell eclipse to ignore them (I think it'll just ignore them for me). Any thoughts or recommendations for this approach?
(BTW, i still had fresh source on the linux side so any thing that got clobbered could be safely restored.)
So here is one solution I have working for the moment. I am not sure how totally stable it is.
Caveat: The project i am using already existed as a MSVS project.
In the MSVS solution dir, rename the source dir (MSVS likes the source dir name to match the solution dir name, so this means the source dir may not be named src) to something uninvolved in the solution, like temp.
SVN checkout the src (eclipse like to call source dirs src).
cd into the source dir. Issue the command:
svn changelist msvs *.cpp *.h
Add *.c if needed. "msvs" is the changelist name. It can be whatever you want ti to be.
This will created a changelist for the checked out directory.
Now, copy the remaining files from the temp directory into your source dir.
When you need to do a checkin, cd into the source dir and issue this command:
svn ci --changelist msvs
Note. You have to be in the src dir for this to work.
I need to apply a patch to the vim source code, but I am having trouble finding the source code for version 7.3.285. The source code from the main vim site builds version 7.3.154. When I do a google search for "vim 7.3.285 source" I get mostly .rpm files and always something about Mandriva. I managed to find a .scr.rpm file and unpacked it, but then the main vim folder it had was exactly the same as the one on the vim site. My guess is that I have use the patch folder to apply the patch to version 285. So I tried the following:
Download .src.rpm file here
unpack .src.rpm file like so rpm2cpio vim-7.3.285-1.src.rpm | cpio -idmv --no-absolute-filenames
apply the patches to the vim73 folder somewhat like so for i in 'seq 0 285'; do patch -p0 < ../vim-7.3-patches/7.3.$i; done
then I also applied the aforementioned patch in a similar way patch -p1 -i ../vim-7.3.285-breakindent.patch
finally I compiled vim: configure, make and sudo make install
However, and this is where it gets weird, if I issue the command vim, it claims to be running version 7.3.285. If however, I issue the command gvim it claims to be running version 7.3.154. It was my understanding that you compile vim and gvim gets compiled too. Does anyone have any idea what is going wrong? Is there a 7.3.285 source file I can download instead to test out?
to get the 7.3.285 source clone the mercurial repo and then do hg up v7-3-285
full instructions here
Wanting to use KDiff3 as my conflict resolution tool for TortoiseSVN I followed the instructions here and here to configure TortoiseSVN to use KDiff3. My merge tool settings in TortoiseSVN are thus:
C:\Program Files (x86)\KDiff3\kdiff3.exe %base %mine %theirs -o %merged --L1 %bname --L2 %yname --L3 %tname
When performing a merge a conflicts may be detected. If they are I hit the 'Edit Conflict' button to launch KDiff3 and reconcile the merge conflicts.
However, when I save my merge the result is saved to a temporary file in the .svn folders rather than within the actual working file C:\projects\my-new-project\src\mvags1.mxml. The temporary location can be seen in the KDiff3 output window as well.
Have I configured anything incorrectly or are my expectations for how KDiff3 works with TortoiseSVN incorrect?
I am using TortoiseSVN 1.7.5 and KDiff3 0.9.96.
My expectations for how KDiff3 would work with TortoiseSVN and Subversion were flawed. The behavior that I was experiencing is the correct behavior.
The proper process for using KDiff3 with TortoiseSVN is:
Click the edit conflicts button when conflicts are detected (in TortoiseSVN)
Resolve the merge with KDiff3
Click the save button in KDiff3
Close KDiff3
In TortoiseSVN mark the file as resolved
After merge to working copy of a branch (svn merge --quiet --accept postpone http://../trunk)
I go to TortoiseSVN extension menu and select "Resolve..."
The window with the list of conflicted items displayed.
Right click on the first item and then select "Edit conflicts". KDiff3 merge window appears.
Pressing B for selecting line source.
click Save. File will be saved with merge result.
Close KDiff3.
How to make conflict automatically marked as resolved in TortoiseSVN when I exiting KDiff3?
I am using:
Windows 10 x64
TortoiseSVN 1.9.5, Build 27581 - 64 Bit
kdiff3 Version 0.9.98 (64 bit)
Merge Tool setting in TortoiseSVN
C:\Program Files\KDiff3\kdiff3.exe %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs
I have SVN configured in Linux at a different location and I need to check-in a shell script to SVN with executable attribute ON from Windows. I use Bamboo as CI, which checks out sources from SVN and does the periodic build. It throws error that shell script is not executable. (Bamboo run as root).
What is the best way to set the executable permission?
I don't use any SVN client and use eclipse to check-in and check-out. If SVN client is the only, how do I find a version that is compatible with SVN plugin that I use in eclipse.
I had a compatibility problem earlier. When I checked-in a file from Tortoise, I couldn't checkout that file from Eclipse.
svn propset svn:executable "*" someScript
The syntax is propset key value so svn:executable is the key and "*" is the value
someScript is the filename
SVN ignores UNIX file permissions when commiting. The way that you set exec permissions on a file is to change the svn properties for that file. If you are on Windows, the easy way to do this is to install Tortoise SVN. Then after you have committed, use Tortoise to open the repo-browser. Find a file that needs to be executable and right-click it to open properties.
The dialog that appears is the SVN properties dialog. Click New to add a new property, select svn:executable from the dropdown list, and set the property value to *.
That's it. When you click OK, it is committed to the SVN repo. The next time you, or the build machine, do an svn update, that file will have executable permissions on Unix/Linux.