Mark Phippard wrote:
>I have thought of this too. In the end, I just do not think that is the
>kind of code we should have in Subclipse. I think the end result of this
>is what people would want, but I doubt this is how they want it
>implemented.
>
No offense, but I believe you are trying too put too much of the
Subclipse concepts into Eclipse IDE. It doesn't seem match to what users
would expect. Also, I doubt that many users would complain about
implementation that is actually work and will give credit to the
workaround-free implementation that does not work. Personally I don't
really care how feature is actually implemented as long as it work.
As an experiment we can try to collect some votes for this issue and
see if users would actually prefer to get slow and simulated version
then wait when it will be implemented in Subversion. Personally I've
been waiting for this over 8 months if not a year.
So here is my +1 to have slow simulation.
>Ultimately, this is a feature that ought to exist in
>Subversion. It looks like their developers agree. I am willing to wait
>for it.From the conversations I have had with the Subversion developers,
>they feel that their checkout command ought to just work this way be
>default. The biggest area of debate is whether they ought to try to make
>this work like rsync and only send down the files that are different. Some
>of the Subversion developers think that would be too much code, others are
>not so sure. All agree that at a minimum, checkout ought to be able to at
>least do this inefficiently.
>
>Perhaps Alex will add it to JavaSVN before they add it to Subversion? That
>would be nice.
>
>
It would be really nice. Your summary of conversation with svn
developers doesn't really sound optimistic.
>If you want to try to make the above code bullet-proof, as well as work on
>all plaforms and permissions systems, be my guest. It sounds like it
>would be a lot of work for a feature that might be available in Subversion
>in the near future.
>
>
Hmm. Is it that difficult? I believe that both - project and temp
directory should have enough permissions, otherwise it won't work anyways.
Besides that there are only few basic operations needed:
-- move directory content (or better copy and then delete)
-- copy file
-- compare two files
First two operations may fail only if project directory has no
read/write permissions. To save some time you can use Ant's tasks in
your code, they will handle all iteration and issues with slashes and
other platform-dependent things and Ant plugin is always part of
Eclipse. See http://ant.apache.org/manual/antexternal.html
class CopyTask extends Copy {
public CopyTask() {
project = new Project();
project.init();
taskType = "copy";
taskName = "copy";
target = new Target();
}
}
class DeleteTask extends Delete {
public DeleteTask() {
project = new Project();
project.init();
taskType = "delete";
taskName = "delete";
target = new Target();
}
}
FileSet fs = new FileSet();
fs.setDir(projectDir);
fs.setIncludes("**/*"); // keep projectDir
fs.setDefaultexcludes(false);
CopyTask copy = new CopyTask();
copy.|*setTodir <cid:part1.09030803.08030204@javatx.com>*(|new File(tempDir));
copy.setFileSet(fs);
copy.execute();
// will throw a BuildException on failure
DeleteTask delete = new DeleteTask();
delete.|*addFileset <cid:part1.09030803.08030204@javatx.com>*(fs|);
delete.execute();
// will throw a BuildException on failure
I think above is bullet proof enough. Am I wrong?
The only issue I can think of with comparison operation is line
breaks, but you should have it resolved in synchronize code.
regards,
Eugene
Received on Wed Aug 17 12:30:06 2005