In a recent blog post, an AccuRev user praised the AccuRev server architecture, but had several criticisms of the AccuRev GUI. AccuRev appreciates and encourages this level of feedback. We’d like to update the user community on the current state of the AccuRev 4.6 GUI and how it addresses many of the blogger’s comments about AccuRev 4.5.4.
1. “From time to time it starts rendering everything in gray.” This is due to a known Java bug, the so-called ‘gray rect’ issue. AccuRev 4.6 now ships with a Java 6 JVM, in which this issue has been resolved for most operating systems.
2. “AccuRev comes with its own vocabulary that describes the source code management.”
|
Common term |
AccuRev term |
| update | update & populate |
| check in/commit | promote |
| delete | defunct |
| move | cut & paste |
| conflict | overlap |
We understand that these vocabulary differences can present short-term challenges for new AccuRev users, yet the benefits of the added functionality generally outweigh the differences. AccuRev provides all of the functionality of legacy SCM systems (ones that use the ‘common terms’ above); but we also have many innovative features that require new terminology. For example, ‘promote’ is new to some users of legacy SCM systems that don’t support private workspaces. An AccuRev product review went into more detail about the Promote feature. Also, since AccuRev is TimeSafe®, nothing ever gets deleted, so ‘defunct’ is a more accurate term for the operation of removing an element from a stream.
3. “In order to make sure that you’ve got all recent changes you need to update and populate your workspace…The update button is the best hidden button I’ve ever seen.”
Actually, Update is sufficient for most operations where a user wants to obtain the latest changes from the AccuRev repository. Populate is a different operation that normally shouldn’t be required as part of a standard update operation. There is an update menu item on the File menu, and no one has pointed this out before, but the user is absolutely correct in noting that Update could be made easier to identify from the AccuRev GUI – great feedback!
4. “Whenever AccuRev can not update your workspace because there is something wrong with it you get a cryptic error message.”
In AccuRev 4.6 we’ve improved the update command so that trivial merges to modified files are handled automatically. This gets rid of the Warning message that the user refers to.
5. “When someone promotes changes to the parent stream then all children get it by inheritance. From time to time the changes introduce conflicts that need to be resolved. The problem is that in order to find them you need to look for them using two different searches – overlap and deep overlap.”
Deep overlap results from changes to files above the parent stream. These do not interfere with update operations. As for overlaps in the parent stream, AccuRev takes the approach of assuming that developers want to keep their private workspaces clean and up-to-date, so we do require that overlaps be merged in your workspace as part of completing the update operation. This also helps to improve performance. Simplifying this is also in our product backlog.
6. “ …you can include other streams into you stream. The problem is that the window that lists all available streams is just a list view without any way of filtering items in the current view”
We agree that searching for streams in some of the dialogs can be improved. We are actively working on providing more options. One existing option that users may find helpful is to go to the StreamBrowser and use the zoom in feature to zoom down to just the sub-tree that is usually used. Then, only that subset will be listed in stream dialogs.
7. “Whenever you edit a text box the Ctrl-Z shortcut does not work.”
The user is right about this. Undo/Redo is a common feature in UIs that we don’t support. It is already ranked high in our product backlog of features to implement.
8. “Let’s say you are done with your task and you want to promote all your changes. In order to do this you need to remember to execute 3 different searches (external, modified, pending) to find all your changes.”
You can use the Pending filter to find all files that are ready to push up to the repository, including modified, kept and defunct files. The user is correct in that External files are not part of this filter. Partly due to feedback such as this, AccuRev is agressively updating the AccuBridge series of IDE integrations (recent comments on AccuBridge for Eclipse) to better support developers in their day-to-day work. For example, the Synchronize View in the AccuBridge for Eclipse product provides users with a single view for managing private workspaces. This view includes the results of both the Pending and External filters.
9. “When you want to move a file that is already in the repository you need to right click on it, choose cut, navigate to the new location, right click and choose paste. Why is there no explicit move command?”
See the response to item 2 above. Cut and paste is such a common GUI operation, and it fits nicely into the underlying namespace operation that AccuRev is performing from within the GUI on behalf of the user.
10. “…unfortunately the AccuRev UI does not let you exclude neither files nor folders. Instead you need to create an environment variable where you specify all patterns for files and folders that AccuRev should ignore.”
The user is correct. AccuRev currently looks at an environment variable to decide which external files to exclude from filters and certain operations. We have received similar feedback before, so the ability to edit the excluded file types from the UI is also ranked high in our product backlog.
11. “My biggest problem with the AccuRev [Visual Studio] plugin is the fact that from time to time when I compile my solution it does something in the background that causes the compilation process to freeze for a few seconds…”
This issue has been reported to AccuRev support; however, we’ll need more data on how to reproduce the problem.
Overall, the improvements in AccuRev 4.6 go a long way towards addressing these concerns. As always, please continue to share all of your thoughts on AccuRev with us. The AccuRev Customer Community is available to answer questions and share ideas with the other AccuRev users, and our Support organization continues to get top marks, but the entire company is here to support your needs.
I think the Accurev GUI is actually one of the best ways to demonstrate the streams concept, and since it’s a non-Swing GUI it’s tolerable.
I’m new with Accurev,
I think Accurev GUI is great, I really do not need to use any compiler integration module, nor a CLI either, plus it’s the very same GUI on Win//Mac/Unix! The dark side; there’s not a good GUI manual to learn all of this and it took me some time to figure out things…
about the new vocabulary I do not quite get why “defunct” instead of delete
about the update button, probably would be a good idea to have an automatic dialog box inviting to update pressing a button every time a Workspace is re-parented… (those are the only occasions I’m using the Update button)
login: I’ve noticed the GUI sometimes bypasses the login screen and I’m able to use the GUI w/o any authentication?? (4.6b + JVM 1.2.2_03)
some minor GUI menu inconsistencies:
1) File-New-[Depot/Stream/Workspace/Snapshot] ok, why do we have also Actions-New_Stream ??
2) If I want to change a Stream I think this option should be available from Edit-Stream and not from Actions-Change_Stream…
Stream Icons
I think different types of streams are basically differentiated upon:
a) allow promotion from downstream
b) deny promotion from downstream
c) allow promotion to upstream
d) deny promotion to upstream
e) allow inheritance from upstream
f) deny inheritance from upstream
g) allow inheritance to downstream
h) deny inheritance to downstream
i.e. a regular Dynamic Stream would be = a & c & e & g
a Snapshot would be = b & d & f & g
there are 16 possible different stream types and this should be displayed on the stream icon, now is a bit confusing…
http://img227.imageshack.us/img227/2057/streamsiy6.jpg
Hi Pat,
I’ll toss a few random answers at you:
* Defunct is utilized in AccuRev because with our Workspaces, which are true private developer sandboxes, the files are located on your local disk and they are writeable automatically. So a Delete is just removing the physical file from the o/s filesystem, it has nothing to do with the status of the element as it pertains to the SCM environment.
* I agree with you about it being a nice feature to prompt and enable an Update when reparenting a Workspace. Good enhancement request. However, if this is the only time you’re using Update, I don’t believe you are taking advantage of the power of Workspaces, or you are the only developer on a set of source code.
* Both the GUI and CLI use the selected authentication mechanism to validate your credentials against the AccuRev server. There are default rules for expiration of those credentials, so unless an explicit logout is executed, it’s not always necessary to run a new login.
Your other points are very interesting, but I don’t think this is the correct place to address them. We’d be more than willing to talk in greater detail about these. I’d encourage you to contact AccuRev, you can get put in touch with your dedicated regional team (technical assistance included) and you can continue the conversation. That’s also the best way to submit your enhancement requests, which are treated with great consideration for future releases…
Regards,
~James
Hi James
1) I see the difference Defunct-Delete. thanks.
2) You are right, so far I’m the only one using Accurev; off course if there were more coders promoting stuff that affects by inheritance my workspace I’d need an update command even if the workspace has not been re-parented.
3) I understand what you say but I think there’s an issue with Accurev authentication; ramdomly (sometimes even after the power up of the PC that has Accurev’s server and GUI installed) the GUI does does not requires my Accurev’s user name and password. I’ve been keeping an eye on this for a while and it definitely happens…
4) Anytime.
thanks
Pat
Hi, James,
I’ve used CVS and ClearCase in the past, and have been using AccuRev for a year at my current job. The AccuRev client GUI is my favorite thing about it; it’s the first time I’ve stuck with a source control GUI instead of using command line tools and custom scripts around them. (Though I do find the server part somwhat immature.) Good for both beginning and advanced users. Well done.
Most of these items don’t bother me.
I agree with #4 and look forward to the improvements. Also, it seems that when an Update does fail, AccuRev does not clean up after itself: modifications and new files pulled down to the workplace are left, and they show up as spurious External and Modified files. I’ve noticed this when updating a workspace that has some of its files opened by a Matlab process so they can’t be written.
My biggest AccuRev problem is that it can’t seem to automatically resolve file name changes that must be done in order. Let’s say I have a file foo.txt that has been promoted to the parent stream. If I rename it to bar.txt and, create and add a new foo.txt to replace the original, and try to promote both at the same time, I get an error: “Name already exists in parent stream: foo.txt”. I need to manually break it into two batches of promotions, with the renamed bar.txt in the first one and the new foo.txt in the second. This is time consuming and forces and artificial division of a batch of related changes (this case often happens with refactoring for me) into multiple promotions, and propagates upward; if you’re batch-promoting a bunch of changes for a release, the integrator must manually determine a partitioning that separates all of the before/after pairs in the incorporated change sets. It seems AccuRev should be able to automatically determine an ordering of the changes that works; the sequence is in the existing promotion or keep times for the files.
Cheers,
Andrew
Comments to UI (4.7.1):
1. It is the way to slow.
2. It is not possible to search for Items in the DB nor locally
3. The UI is often blocked (gray screen).
4. Not possible to filter for example externals search. I know there some configuration file or env var but I wish there exists a UI to filter. Actually I don’t want to restart the app because I have to change my filter.
The Streamview is pretty good.
Accurev GUI is good (better than CVS/Eclipse…). Accurev in Eclipse could be a bit better.
A few missing commands would be very helpful:
- find by EID — occasionally error messages come out that give just an EID. I have no way of knowing what file and path is meant. I may have to search across many streams as well.
- find by file name — list all files (in all directories of a stream) that match a given pattern. This can help deduce a user error where file XYZ was put into the wrong directory, without having to first create a new workspace from the stream.
Hi Stanley -
Here are two quick queries that should help:
Find-by-EID: $ accurev hist -e
Find-Files-by-Stream: $ accurev stat -s -a | grep
If you’re looking to scan every stream in a given depot for a particular file, here is what I would start with [assumes unix shell]. It’s not as glamorous as a single ‘accurev find’ command, but it gets the job done:
# search all streams in given depot
for stream in $(accurev show -p streams | awk ‘NR>1 {print $1}’); do
# search for particular file (e.g. diag.txt)
accurev stat -s ${stream} -a | grep “diag.txt” >/dev/null 2>&1;
# display streams with match
if [ $? -eq 0 ]; then
echo “Found: ${stream}”;
fi;
done;
HTH _ Dave
David Thomas, when do you plan to put searching in the tool? Its very very slow to get around when you have 100,000’s of files. Navigation and finding files quickly in the tool really needs some loving. You should consider adding a search window on every page (even stream view) since every window should be filterable.
Hi Jake,
Is there a particular search function you are looking for? For instance, by AccuRev status, file name, file type, searching in the content of files, or other?
Can you give more background for what you are looking to do? For instance, many users use include/exclude links to reduce the repository contents to just the areas of that they work on. Is that something that would work for you?
If you are doing frequent searching that is not related to AccuRev status, have you considered the Windows Explorer plugin? That allows you to do AccuRev actions while also making full use of the built-in Windows search capabilities or other search plug-ins if you have those enabled.
I’d be interested in any additional background/thoughts that you have to help better understand your needs and to help prioritize this request.
Cheers,
Damon