dmusican / Elegit

A GUI client for people who want to learn Git.
MIT License
30 stars 7 forks source link

Can't commit files in subfolders #487

Closed MikeTheGreat closed 7 years ago

MikeTheGreat commented 7 years ago

Step 1: create a new project in Visual Studio. Create a new project in, say, C#. Let's stick with a Console Application because it's easy (it's the C# version of printf/scanf). MAKE SURE THAT YOU CLICK ON 'Create directory for the solution', so that stuff shows up in subfolders: image

Click ok to create it. Quiz Visual Studio at this point, then move the folder containing all the VS stuff into a repo that Elegit knows about, like so:

image

At this point Elegit will notice that a bunch of new files have been added: image

BUG: Clicking on the 'Add' button doesn't do anything. I expected it to add the files, but it doesn't. The Commit button confirms that there's no staged files because it gives an error message when I try to commit.

Am I doing something wrong? If I (and my students) are just using Elegit wrong I would be thrilled to know that there's a fix on my side :)

Also - is there a way to find the version number of Elegit? I can't find an 'About' box menu item.

erictwalker18 commented 7 years ago

Easy thing to answer: Elegit doesn't have an "About" at the moment (#488), but you can find the version number by going to the directory where the executable is stored, then into the 'app' subdirectory. The jar inside that should be named with the version.

image

As far as adding files, you aren't doing anything wrong, this is a bug.

Notes to the team: a possible quick fix is making the select all option do something along the lines of git.add().addFilePattern(".");. This will add all files and make it possible to add these difficult files. That being said, it appears to be a jgit bug that it doesn't work to add a single file within a directory. A possible hacky fix is setting the workingtreeiterator subtree iterator to something that only adds the file(s) you want to add.

dmusican commented 7 years ago

Any chance that it is spitting out any exceptions? You won't see them if you run it directly via double clicking in the icon, but if you can find the jar file it's firing up you can run "java -jar ..." from the command line and exceptions should hopefully get dumped out to the terminal window.

Version number: it's not in there yet, and it has also occurred to me that we need it. I'm adding that as a new issue (#489).

dmusican commented 7 years ago

Thanks, Eric -- I got interrupted while composing the answer and you get in before me, well done. :) And we both opened the same issue. I'll combine 'em sometime.

dmusican commented 7 years ago

Oh, and yuck that it's a jgit bug. Blech. @erictwalker18 , do you know if there's a jgit bug report for that?

erictwalker18 commented 7 years ago

I couldn't find any exceptions, even surrounding the jgit adder.call() with try/catch. I couldn't find any specific bugs on their page, but I might've missed one that covers this.

erictwalker18 commented 7 years ago

@MikeTheGreat: A workaround with the current release for files that have previously been added is to use 'commit -a' (by right clicking on the commit button), however the initial add will have to be done using a different tool. We have a naive workaround, but still figuring out the jgit bug.

erictwalker18 commented 7 years ago

Turned out to be a change in how jgit interprets filepaths in a recent version, so we just had to change the file separator to /