| Summary: | Jgit merge : files without extension give conflicts running jgit on OpenVMS | ||
|---|---|---|---|
| Product: | [Technology] JGit | Reporter: | Jouk Jansen <joukj> |
| Component: | JGit | Assignee: | Project Inbox <jgit.core-inbox> |
| Status: | NEW --- | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | robin.rosenberg, robin |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | other | ||
| Whiteboard: | |||
I'm not sure we can really help with problems on VMS. Can you reproduce this on e.g. a Linux system? (In reply to Robin Stocker from comment #1) > I'm not sure we can really help with problems on VMS. Can you reproduce this > on e.g. a Linux system? I haven't used VMS for 30 years, but I do recall this incompatibility with UNIX. It's not repeatable in anything but VMS. It's sort of the opposite of windows. On windows. Create "x.". listFiles gives "x". on vms. Create "x". listFiles gives "x.". On mac. Create "å". listFiles gives combining o+"a" The difference is that on Windows nobody cares about this problem since nobody names files with trailing periods or spaces. Probable solution: You (someone who uses and cares about VMS) needs to create one or more new FS subclasses for VMS that overrides FS.normalize() to removed trailing periods. If it doesn't break or complicate anything much, it's likely to be accepted. |
Build Identifier: 1.2.0.201112221803-r When files without extension are extracted from a git repository a "." is added to the file in the local copy when it is located on a VMS system. When such a file is changed in the git-repostory and one tries to update the local copy with jgit fetch jgit merge "origin/master" one gets errors like this bolero-jj) jgit merge "origin/master" org.eclipse.jgit.api.errors.CheckoutConflictException: Checkout conflict with fi les: ChangeLog Jamfile README configure docs/CHANGES docs/release at org.eclipse.jgit.api.MergeCommand.call(MergeCommand.java:258) at org.eclipse.jgit.pgm.Merge.run(Merge.java:85) at org.eclipse.jgit.pgm.TextBuiltin.execute(TextBuiltin.java:148) at org.eclipse.jgit.pgm.Main.execute(Main.java:191) at org.eclipse.jgit.pgm.Main.run(Main.java:120) at org.eclipse.jgit.pgm.Main.main(Main.java:94) Caused by: org.eclipse.jgit.errors.CheckoutConflictException: Checkout conflict with files: ChangeLog Jamfile README configure docs/CHANGES docs/release at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckou t.java:398) at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout. java:378) at org.eclipse.jgit.api.MergeCommand.call(MergeCommand.java:185) ... 5 more The "conflicting" files were created using jgit clone ... and never changed after that. ----- A similar problem I notced once with the .gitignore file, because that gets into the local copy as somthing like ^._^.gitignore8959319472519309226.gitignore (with the number varying) Is there a quick solution like forcing merge to select the new version from the repository automatically? Reproducible: Always Steps to Reproduce: 1.use jgit-client on a OpenVMS system 2.change in the repository a file without a . 3.jgit fetch 4. jgit merge "origin/master"