bool TryGetStreamPrefix(PerforceConnection Perforce, string StreamName, TextWriter Log, out string StreamPrefix)
        {
            string CurrentStreamName = StreamName;

            for (;;)
            {
                PerforceSpec StreamSpec;
                if (!Perforce.TryGetStreamSpec(CurrentStreamName, out StreamSpec, Log))
                {
                    StreamPrefix = null;
                    return(false);
                }
                if (StreamSpec.GetField("Type") != "virtual")
                {
                    StreamPrefix = CurrentStreamName;
                    return(true);
                }
                CurrentStreamName = StreamSpec.GetField("Parent");
            }
        }
		bool TryGetStreamPrefix(PerforceConnection Perforce, string StreamName, TextWriter Log, out string StreamPrefix)
		{ 
			string CurrentStreamName = StreamName;
			for(;;)
			{
				PerforceSpec StreamSpec;
				if(!Perforce.TryGetStreamSpec(CurrentStreamName, out StreamSpec, Log))
				{
					StreamPrefix = null;
					return false;
				}
				if(StreamSpec.GetField("Type") != "virtual")
				{
					StreamPrefix = CurrentStreamName;
					return true;
				}
				CurrentStreamName = StreamSpec.GetField("Parent");
			}
		}