Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SVN - How to upload a single file?

How do I upload a single file from my local computer to a SVN repository?

I can import a directory, but I can't import a single file into existing directory.

I use SVN in linux (command line).

Any help would be appreciated.

Edit: I forgot to mention, I need to upload this file into a specific directory that has nothing to do with directory structure in my local computer (say I upload from Desktop).

So I want to upload a file from Desktop to https://.../somefolder

like image 303
Rok Povsic Avatar asked Jul 09 '10 06:07

Rok Povsic


People also ask

How do I commit a single file in svn?

Select any file and/or folders you want to commit, then TortoiseSVN → Commit.... The commit dialog will show you every changed file, including added, deleted and unversioned files. If you don't want a changed file to be committed, just uncheck that file.

Can multiple files be added in svn?

Edit These files exist in a directory tree so adding * for one directory will not work. @your edit: So then provide multiple paths to add like: svn add dir1/* dir2/* dir3/* or as many have mentioned grep the ouput of svn stat from the root and pipe it to cut or awk and then to add.

What is a .svn file?

SVN stands for Subversion. So, SVN and Subversion are the same. SVN is used to manage and track changes to code and assets across projects.


2 Answers

This can be done as the OP requires.

svn import -m "Adding a new file" file_to_upload.ext http://example.org/path/to/repo/file_to_upload.ext

This allows uploading a file directly into the repository without checking out to a local working directory.

like image 182
scottsome Avatar answered Oct 12 '22 00:10

scottsome


Well, short answer is that it doesn't work like that :) In SVN you work with a checked-out revision of your repository. In order to "upload a single file" you have to "add" the file with "svn add foo.txt" and then run "svn commit -m "Added file foo" foo.txt". But you can only do this to an existing repository. Therefore you must first checkout the revision (rev of trunk or a given branch) of the repository to add the file to. So the entire steps would be something like

  • svn co https://svn.internal.foo.com/svn/mycoolgame/branches/1.81
  • create your new file in the correct place in the folder structure checked out.
  • svn add your new file
  • svn ci -m "added file lalalalala" you new file

After this, you can delete your local copy again.

8-year edit: As mentioned svn import can also be used to accomplish this without having a local copy under version control. Do note though that this does so recursively and will add directories not present in the repository. This could be desired behavior or a source of potential errors depending on the situation.

like image 21
inquam Avatar answered Oct 11 '22 23:10

inquam