Feeds:
Posts
Comments

Archive for the ‘Version Control’ Category

Another weird SVN error. I keep telling myself I need to re-checkout a clean version of the svn repository, or better yet export to code, or even better use git.

Regardless I found an obscure post with the solution. I had the problem again, couldn’t find the post so here we go again. May need sudo privileges

I’ve replaced directory path with {folder root} for generic purposes.

Error

$ svn commit -m "testing commit"
svn: Commit failed (details follow):
svn: Can't move '{folder root}/.svn/tmp/entries' to '{folder root}/.svn/entries': Operation not permitted

Solution

$ chflags -R nouchg ./

What does this magic do? This changes the immutable flag on the file that allows for editing of the hidden files. The commit should now work.

Unknown is how changing an immutable flag affects the windows system it runs on. I am using terminal to access a samba mounted drive on /Volumes.

Read Full Post »

Joined Github

As I worked on some code for an open source project I wanted to learn Git for a variety of reasons.

So not only am I using it, but I also joined Github

I am definitely a fan of the distributed nature of Git, and I love the error messages, very helpful. Thank you git for suggesting a common fix to probably a common problem.

$ git add
Nothing specified, nothing added.
Maybe you wanted to say 'git add .'?

vs

$ svn add
svn: Try 'svn help' for more info
svn: Not enough arguments provided

Read Full Post »

Not a huge deal, but I spent a while fighting with various svn errors and finally figured it out.

Unlike distributed VCS, svn relies on clients and a server repo to handle source code. So if a svn 1.3.1 client checks out code the .svn folders are created using that version.

When a 1.6.11 svn client comes a long and tries to do an update from a 1.6.11 server repo the svn client major differences can cause problems.

Such as:

  • log entry missing 'name' attribute
  • svn: Error processing command 'rm'

Read Full Post »

svn: Argument list too long

Recently I needed to add thousands of files to an existing repository, but every time I tried svn add * or the svn import functionality I got the error:

svn: Argument list too long

I finally found help with this link but it did not work with file names with spaces.

So below I take the substring of the output in spaces and ? from the whole line before adding the file.

svn status | grep "^?" | awk '{ print substr($0,9,length($0))}' | while read f; do svn add "$f"; done

I’m sure more can be done to make this better, but this did the job I needed. For example using ls to import to svn would be helpful. For now this only works when svn status can be executed.

I think find is the best way to do this, with regex support; but again I just hacked my way to the finish line.

Read Full Post »

While going through and versioning old projects I had to import a fairly large project (6-7 subfolders, hundreds of files). Never mind that they weren’t under version control, they were on a windows machine, and I work via SMB mounts.

Not that I would expect many people to get hung up on this. Editing windows files on a mac apple will sometimes generate a ‘._text.txt’ for a modified ‘text.txt’ file (apple double files).

This shows as an invisible file on the SMB mount. Since I did a straight import, all ‘._*’ files were included in the repository. However ‘_.’ is an illegal file name for a windows machine. So when I tried to svn co or svn up I got the following error on other windows machines.

svn: In directory 'sesame/Images'
svn: Can't open file 'sesame/images/.svn/tmp/text-base/._sesame_50.jpg.svn-base': No such file or directory

Notice the error mentions a file with a ‘._’ prefix. On a windows box I discovered ‘._’ is not part of a valid file name. After removing all of the ‘._’ files from the repository everything works great. Moral of the story: use global-ignores to skip over ‘._*’ files.

Read Full Post »

%d bloggers like this: