From Chipaca's (Ubuntu One dev) answer to a similar question:
However, if you edit it with an editor that renames the file, creates a new one, copies the content in and then deletes the original (as most editors do), and syncdaemon is running, it will see the rename and the delete and your public URL will refer first to the renamed file, and then will disappear.
This is an unfortunate side-effect of the way we're doing public files, and something we need to change, but right now this is what it is.
Basically, when you save a file with most editors, you are actually replacing the original file with the modified version. You can see for yourself using the stat command:
hello@world:~$ stat -c %i hello.txt
4971
The command stat -c %i returns the inode number of a file.
Running that same command again after I have edited hello.txt in gedit
returns a different inode number:
hello@world:~$ stat -c %i hello.txt
3794
If I simply append a line of text to the end of the file using >> the file is simply modified in place, not overwritten:
hello@world:~$ echo "The End." >> hello.txt
hello@world:~$ stat -c %i hello.txt
3794
I have found a slightly awkward way to get around this limitation in Ubuntu One:
Create a copy of the published file:
cp hello.txt hello-copy.txt
Do all of your work on the copy instead of the published file:
gedit hello-copy.txt
When you want to update the published file, run the following command:
cat hello-copy.txt > hello.txt