How does Tortoise's non recursive commit work?

42,071

Solution 1

Found by Google how to fix it: press F5 in the commit window (not in the "warning popup")

See http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2831045 for details.

On 26.08.2011 22:39, Ryan J Ollos wrote:

For several months now I've been seeing the following dialog box appear when initiating Commit. It frequently happens when attempting to commit following a merge.

The thing I have noticed lately however is that if I Cancel and then manually refresh the file list (F5), I don't see the message again when initiating the commit a second time. The commit seems to succeed fine and with no further problems.

The commit dialog monitors the working copy in a background thread for change notifications. Such notifications are sent by the OS in case files are modified/moved/renamed/... If such a notification is received, the commit dialog first does a few checks so it can drop most of them. If the notification indicates that a file that is not checked and not visible in the commit dialog has somehow changed, it switches back to non-recursive committing. That's because if you have e.g. a file open in another editor and save your changes while the commit dialog is open, then that file would get committed as well even though you haven't checked it in the commit dialog (it doesn't show up until you refresh the dialog with F5).

So if you see that warning dialog often, please check if there's another tool/app running which modifies files in your working copy.

And as you noticed: if you hit F5, that 'non-recursive flag' is reset because after a refresh, you see all the files again - even the ones you modified after you started the dialog.

Stefan

Solution 2

I had the same issue but resolved it by reverting changes to files that I had marked to 'ignore-on-commit'

Once I reverted these files, then tortoisesvn was able to commit all the other files from the merge

Solution 3

Is it fine if i proceed with this commit?

No, your commit will ignore all changes in WC-tree and reflect only root-level changes (broken merge).

You made an error when checking out non-recursive initially. You can try to perform good, full commit using --depth infinity parameter in the CLI or find this switch in TortoiseSVN GUI.

svn commit --depth infinity . -m "Merge"

Solution 4

It looks like TortoiseSVN performs some kind of validity checking before calling commit. Good but the error message is very unclear.

When I faced this issue, I went back to using the svn command line to commit. Commit failed due to the reason that one of the folders was not up to date. After updating just that folder, I ran "svn commit" once again and it went through.

Edit: PS: Before you use try this out, make sure you do not have any files marked as "ignore on commit". "Ignore on commit" is tortoise specific and SVN commit picks these changes as well.

Solution 5

I saw this issue and the cause was a few added files not having the added status for no apparent reason. They were 'normal' even though the parent folder correctly showed as 'added'. I reverted those 'normal' changes and then manually re-did them. This made each added item show up twice in the commit list but it resolved the error and everything appears to be in working order now.

It didn't have anything to do with ignore-on-commit as in another answer, it just seemed like a bug in TortoiseSVN.

Share:
42,071
user1447725
Author by

user1447725

Updated on January 03, 2020

Comments

  • user1447725
    user1447725 over 4 years

    I've checked out a copy of the SVN branch (my branch) locally to which I've merged from a different branch (which has a completely different folder structure). So basically there are a lot of deletions (of old files) and additions (of new files).

    When I try to commit the merge to the repository (to my branch), Tortoise says

    This commit is not recursive, and there are moved/renamed folders selected for commit. Such moves/renames are always performed recursively in the repository. Do you want to commit anyway?

    Is it fine to proceed with this commit? If not, what should I do so that there's no problem?

    Also, for some files that I've added, I've made changes after adding (if this affects the nature).

  • Keith M
    Keith M almost 7 years
    "You made an error when checking out non-recursive initially." No, not necessarily. I checked out my WC the same way I always do, but I'm still having this problem suddenly. In fact, this doesn't seem to be the case for any of the alternate solutions below at all.
  • Keith M
    Keith M almost 7 years
    Other answers are saying this will not commit what you actually want to commit.
  • buzz3791
    buzz3791 almost 7 years
    The link in the answer seems to be dead. Here's a valid one from the Internet Archive web.archive.org/web/20150306224932/http://…
  • 1800 INFORMATION
    1800 INFORMATION about 5 years
    This is completely false. I get this message from time to time and I checked out my working copy recursively in the same way I always did
  • Bradley Singer
    Bradley Singer almost 5 years
    From what I can tell, TortoiseSVN doesn't recursively move files. Moving a folder changes the folder history, but not the files therein. This means to move folders with TortoiseSVN you have to recreate the folder in the desired destination, add the folder, then move the contents of the original folder over to the new one. Or just use the command line.
  • Chris
    Chris almost 5 years
    I believe this was from a merge, not a move. Unless those are similar operations, I'm not following.
  • O. R. Mapper
    O. R. Mapper almost 5 years
    I just tried pressing F5. The effect is that now, the commit dialog file list shows most of my files twice (with exactly the same path and name), and the warning message still appears when I attempt to commit.
  • Build Succeeded
    Build Succeeded over 4 years
    what is an actual reason? why or how are these files causing the problem?
  • wecky
    wecky about 3 years
    This did the trick for me, none of the other solutions worked.
  • jumping_monkey
    jumping_monkey about 3 years
    Thanks for this answer, very informative! What worked for me: I closed the windows/apps where the files could possibly be "unintentionally modified" and voila!
  • mwardm
    mwardm almost 3 years
    Perhaps related to this (but I don't currently have the time to try to find out): I tried committing from one further folder up in the working copy and the message went away.